hubspot-api-client 9.4.0 → 9.5.0

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 (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/Gemfile.lock +1 -1
  4. data/lib/hubspot/codegen/conversations/visitor-identification/api/generate_api.rb +90 -0
  5. data/lib/hubspot/codegen/conversations/visitor-identification/api_client.rb +392 -0
  6. data/lib/hubspot/codegen/conversations/visitor-identification/api_error.rb +61 -0
  7. data/lib/hubspot/codegen/conversations/visitor-identification/configuration.rb +263 -0
  8. data/lib/hubspot/codegen/conversations/visitor-identification/models/error.rb +292 -0
  9. data/lib/hubspot/codegen/conversations/visitor-identification/models/error_detail.rb +258 -0
  10. data/lib/hubspot/codegen/conversations/visitor-identification/models/identification_token_generation_request.rb +236 -0
  11. data/lib/hubspot/codegen/conversations/visitor-identification/models/identification_token_response.rb +215 -0
  12. data/lib/hubspot/codegen/events/api/events_api.rb +105 -0
  13. data/lib/hubspot/codegen/events/api_client.rb +390 -0
  14. data/lib/hubspot/codegen/events/api_error.rb +59 -0
  15. data/lib/hubspot/codegen/events/configuration.rb +261 -0
  16. data/lib/hubspot/codegen/events/models/collection_response_external_unified_event.rb +224 -0
  17. data/lib/hubspot/codegen/events/models/error.rb +290 -0
  18. data/lib/hubspot/codegen/events/models/error_detail.rb +256 -0
  19. data/lib/hubspot/codegen/events/models/external_unified_event.rb +290 -0
  20. data/lib/hubspot/codegen/events/models/next_page.rb +222 -0
  21. data/lib/hubspot/codegen/events/models/paging.rb +208 -0
  22. data/lib/hubspot/version.rb +1 -1
  23. data/spec/codegen/conversations/visitor-identification/api/generate_api_spec.rb +47 -0
  24. data/spec/codegen/conversations/visitor-identification/models/error_detail_spec.rb +65 -0
  25. data/spec/codegen/conversations/visitor-identification/models/error_spec.rb +77 -0
  26. data/spec/codegen/conversations/visitor-identification/models/identification_token_generation_request_spec.rb +53 -0
  27. data/spec/codegen/conversations/visitor-identification/models/identification_token_response_spec.rb +41 -0
  28. data/spec/codegen/events/api/events_api_spec.rb +54 -0
  29. data/spec/codegen/events/models/collection_response_external_unified_event_spec.rb +47 -0
  30. data/spec/codegen/events/models/error_detail_spec.rb +65 -0
  31. data/spec/codegen/events/models/error_spec.rb +77 -0
  32. data/spec/codegen/events/models/external_unified_event_spec.rb +71 -0
  33. data/spec/codegen/events/models/next_page_spec.rb +47 -0
  34. data/spec/codegen/events/models/paging_spec.rb +41 -0
  35. data/spec/features/conversations/visitor-identification/generate_api_spec.rb +7 -0
  36. data/spec/features/events/events_api_spec.rb +7 -0
  37. metadata +48 -2
@@ -0,0 +1,59 @@
1
+ =begin
2
+ #HubSpot Events API
3
+
4
+ #API for accessing CRM object events.
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ module Hubspot
14
+ module Events
15
+ class ApiError < StandardError
16
+ attr_reader :code, :response_headers, :response_body
17
+
18
+ # Usage examples:
19
+ # ApiError.new
20
+ # ApiError.new("message")
21
+ # ApiError.new(:code => 500, :response_headers => {}, :response_body => "")
22
+ # ApiError.new(:code => 404, :message => "Not Found")
23
+ def initialize(arg = nil)
24
+ if arg.is_a? Hash
25
+ if arg.key?(:message) || arg.key?('message')
26
+ super(arg[:message] || arg['message'])
27
+ else
28
+ super arg
29
+ end
30
+
31
+ arg.each do |k, v|
32
+ instance_variable_set "@#{k}", v
33
+ end
34
+ else
35
+ super arg
36
+ end
37
+ end
38
+
39
+ # Override to_s to display a friendly error message
40
+ def to_s
41
+ message
42
+ end
43
+
44
+ def message
45
+ if @message.nil?
46
+ msg = "Error message: the server returns an error"
47
+ else
48
+ msg = @message
49
+ end
50
+
51
+ msg += "\nHTTP status code: #{code}" if code
52
+ msg += "\nResponse headers: #{response_headers}" if response_headers
53
+ msg += "\nResponse body: #{response_body}" if response_body
54
+
55
+ msg
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,261 @@
1
+ =begin
2
+ #HubSpot Events API
3
+
4
+ #API for accessing CRM object events.
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ module Hubspot
14
+ module Events
15
+ class Configuration
16
+ # Defines url scheme
17
+ attr_accessor :scheme
18
+
19
+ # Defines url host
20
+ attr_accessor :host
21
+
22
+ # Defines url base path
23
+ attr_accessor :base_path
24
+
25
+ # Defines API keys used with API Key authentications.
26
+ #
27
+ # @return [Hash] key: parameter name, value: parameter value (API key)
28
+ #
29
+ # @example parameter name is "api_key", API key is "xxx" (e.g. "api_key=xxx" in query string)
30
+ # config.api_key['api_key'] = 'xxx'
31
+ attr_accessor :api_key
32
+
33
+ # Defines API key prefixes used with API Key authentications.
34
+ #
35
+ # @return [Hash] key: parameter name, value: API key prefix
36
+ #
37
+ # @example parameter name is "Authorization", API key prefix is "Token" (e.g. "Authorization: Token xxx" in headers)
38
+ # config.api_key_prefix['api_key'] = 'Token'
39
+ attr_accessor :api_key_prefix
40
+
41
+ # Defines the username used with HTTP basic authentication.
42
+ #
43
+ # @return [String]
44
+ attr_accessor :username
45
+
46
+ # Defines the password used with HTTP basic authentication.
47
+ #
48
+ # @return [String]
49
+ attr_accessor :password
50
+
51
+ # Defines the access token (Bearer) used with OAuth2.
52
+ attr_accessor :access_token
53
+
54
+ # Set this to enable/disable debugging. When enabled (set to true), HTTP request/response
55
+ # details will be logged with `logger.debug` (see the `logger` attribute).
56
+ # Default to false.
57
+ #
58
+ # @return [true, false]
59
+ attr_accessor :debugging
60
+
61
+ # Defines the logger used for debugging.
62
+ # Default to `Rails.logger` (when in Rails) or logging to STDOUT.
63
+ #
64
+ # @return [#debug]
65
+ attr_accessor :logger
66
+
67
+ # Defines the temporary folder to store downloaded files
68
+ # (for API endpoints that have file response).
69
+ # Default to use `Tempfile`.
70
+ #
71
+ # @return [String]
72
+ attr_accessor :temp_folder_path
73
+
74
+ # The time limit for HTTP request in seconds.
75
+ # Default to 0 (never times out).
76
+ attr_accessor :timeout
77
+
78
+ # Set this to false to skip client side validation in the operation.
79
+ # Default to true.
80
+ # @return [true, false]
81
+ attr_accessor :client_side_validation
82
+
83
+ ### TLS/SSL setting
84
+ # Set this to false to skip verifying SSL certificate when calling API from https server.
85
+ # Default to true.
86
+ #
87
+ # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
88
+ #
89
+ # @return [true, false]
90
+ attr_accessor :verify_ssl
91
+
92
+ ### TLS/SSL setting
93
+ # Set this to false to skip verifying SSL host name
94
+ # Default to true.
95
+ #
96
+ # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
97
+ #
98
+ # @return [true, false]
99
+ attr_accessor :verify_ssl_host
100
+
101
+ ### TLS/SSL setting
102
+ # Set this to customize the certificate file to verify the peer.
103
+ #
104
+ # @return [String] the path to the certificate file
105
+ #
106
+ # @see The `cainfo` option of Typhoeus, `--cert` option of libcurl. Related source code:
107
+ # https://github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/easy_factory.rb#L145
108
+ attr_accessor :ssl_ca_cert
109
+
110
+ ### TLS/SSL setting
111
+ # Client certificate file (for client certificate)
112
+ attr_accessor :cert_file
113
+
114
+ ### TLS/SSL setting
115
+ # Client private key file (for client certificate)
116
+ attr_accessor :key_file
117
+
118
+ # Set this to customize parameters encoding of array parameter with multi collectionFormat.
119
+ # Default to nil.
120
+ #
121
+ # @see The params_encoding option of Ethon. Related source code:
122
+ # https://github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96
123
+ attr_accessor :params_encoding
124
+
125
+ attr_accessor :inject_format
126
+
127
+ attr_accessor :force_ending_format
128
+
129
+ attr_accessor :error_handler
130
+
131
+ def initialize
132
+ @scheme = 'https'
133
+ @host = 'api.hubapi.com'
134
+ @base_path = ''
135
+ @api_key = {}
136
+ @api_key_prefix = {}
137
+ @timeout = 0
138
+ @client_side_validation = true
139
+ @verify_ssl = true
140
+ @verify_ssl_host = true
141
+ @params_encoding = nil
142
+ @cert_file = nil
143
+ @key_file = nil
144
+ @debugging = false
145
+ @inject_format = false
146
+ @force_ending_format = false
147
+ @logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
148
+ # error_handler params: { 'status_code': { max_retries: ..., seconds_delay: ... }, ... }
149
+ @error_handler = {}
150
+
151
+ yield(self) if block_given?
152
+ end
153
+
154
+ # The default Configuration object.
155
+ def self.default
156
+ @@default ||= Configuration.new
157
+ end
158
+
159
+ def configure
160
+ yield(self) if block_given?
161
+ end
162
+
163
+ def scheme=(scheme)
164
+ # remove :// from scheme
165
+ @scheme = scheme.sub(/:\/\//, '')
166
+ end
167
+
168
+ def host=(host)
169
+ # remove http(s):// and anything after a slash
170
+ @host = host.sub(/https?:\/\//, '').split('/').first
171
+ end
172
+
173
+ def base_path=(base_path)
174
+ # Add leading and trailing slashes to base_path
175
+ @base_path = "/#{base_path}".gsub(/\/+/, '/')
176
+ @base_path = '' if @base_path == '/'
177
+ end
178
+
179
+ def base_url
180
+ "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '')
181
+ end
182
+
183
+ # Gets API key (with prefix if set).
184
+ # @param [String] param_name the parameter name of API key auth
185
+ def api_key_with_prefix(param_name)
186
+ if @api_key_prefix[param_name]
187
+ "#{@api_key_prefix[param_name]} #{@api_key[param_name]}"
188
+ else
189
+ @api_key[param_name]
190
+ end
191
+ end
192
+
193
+ # Gets Basic Auth token string
194
+ def basic_auth_token
195
+ 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
196
+ end
197
+
198
+ # Returns Auth Settings hash for api client.
199
+ def auth_settings
200
+ {
201
+ 'hapikey' =>
202
+ {
203
+ type: 'api_key',
204
+ in: 'query',
205
+ key: 'hapikey',
206
+ value: api_key_with_prefix('hapikey')
207
+ },
208
+ 'oauth2' =>
209
+ {
210
+ type: 'oauth2',
211
+ in: 'header',
212
+ key: 'Authorization',
213
+ value: "Bearer #{access_token}"
214
+ },
215
+ }
216
+ end
217
+
218
+ # Returns an array of Server setting
219
+ def server_settings
220
+ [
221
+ {
222
+ url: "https://api.hubapi.com/",
223
+ description: "No description provided",
224
+ }
225
+ ]
226
+ end
227
+
228
+ # Returns URL based on server settings
229
+ #
230
+ # @param index array index of the server settings
231
+ # @param variables hash of variable and the corresponding value
232
+ def server_url(index, variables = {})
233
+ servers = server_settings
234
+
235
+ # check array index out of bound
236
+ if (index < 0 || index >= servers.size)
237
+ fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
238
+ end
239
+
240
+ server = servers[index]
241
+ url = server[:url]
242
+
243
+ # go through variable and assign a value
244
+ server[:variables].each do |name, variable|
245
+ if variables.key?(name)
246
+ if (server[:variables][name][:enum_values].include? variables[name])
247
+ url.gsub! "{" + name.to_s + "}", variables[name]
248
+ else
249
+ fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
250
+ end
251
+ else
252
+ # use default value
253
+ url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value]
254
+ end
255
+ end
256
+
257
+ url
258
+ end
259
+ end
260
+ end
261
+ end
@@ -0,0 +1,224 @@
1
+ =begin
2
+ #HubSpot Events API
3
+
4
+ #API for accessing CRM object events.
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Hubspot
16
+ module Events
17
+ class CollectionResponseExternalUnifiedEvent
18
+ attr_accessor :results
19
+
20
+ attr_accessor :paging
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'results' => :'results',
26
+ :'paging' => :'paging'
27
+ }
28
+ end
29
+
30
+ # Attribute type mapping.
31
+ def self.openapi_types
32
+ {
33
+ :'results' => :'Array<ExternalUnifiedEvent>',
34
+ :'paging' => :'Paging'
35
+ }
36
+ end
37
+
38
+ # List of attributes with nullable: true
39
+ def self.openapi_nullable
40
+ Set.new([
41
+ ])
42
+ end
43
+
44
+ # Initializes the object
45
+ # @param [Hash] attributes Model attributes in the form of hash
46
+ def initialize(attributes = {})
47
+ if (!attributes.is_a?(Hash))
48
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Hubspot::Events::CollectionResponseExternalUnifiedEvent` initialize method"
49
+ end
50
+
51
+ # check to see if the attribute exists and convert string to symbol for hash key
52
+ attributes = attributes.each_with_object({}) { |(k, v), h|
53
+ if (!self.class.attribute_map.key?(k.to_sym))
54
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Hubspot::Events::CollectionResponseExternalUnifiedEvent`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
55
+ end
56
+ h[k.to_sym] = v
57
+ }
58
+
59
+ if attributes.key?(:'results')
60
+ if (value = attributes[:'results']).is_a?(Array)
61
+ self.results = value
62
+ end
63
+ end
64
+
65
+ if attributes.key?(:'paging')
66
+ self.paging = attributes[:'paging']
67
+ end
68
+ end
69
+
70
+ # Show invalid properties with the reasons. Usually used together with valid?
71
+ # @return Array for valid properties with the reasons
72
+ def list_invalid_properties
73
+ invalid_properties = Array.new
74
+ if @results.nil?
75
+ invalid_properties.push('invalid value for "results", results cannot be nil.')
76
+ end
77
+
78
+ invalid_properties
79
+ end
80
+
81
+ # Check to see if the all the properties in the model are valid
82
+ # @return true if the model is valid
83
+ def valid?
84
+ return false if @results.nil?
85
+ true
86
+ end
87
+
88
+ # Checks equality by comparing each attribute.
89
+ # @param [Object] Object to be compared
90
+ def ==(o)
91
+ return true if self.equal?(o)
92
+ self.class == o.class &&
93
+ results == o.results &&
94
+ paging == o.paging
95
+ end
96
+
97
+ # @see the `==` method
98
+ # @param [Object] Object to be compared
99
+ def eql?(o)
100
+ self == o
101
+ end
102
+
103
+ # Calculates hash code according to all attributes.
104
+ # @return [Integer] Hash code
105
+ def hash
106
+ [results, paging].hash
107
+ end
108
+
109
+ # Builds the object from hash
110
+ # @param [Hash] attributes Model attributes in the form of hash
111
+ # @return [Object] Returns the model itself
112
+ def self.build_from_hash(attributes)
113
+ new.build_from_hash(attributes)
114
+ end
115
+
116
+ # Builds the object from hash
117
+ # @param [Hash] attributes Model attributes in the form of hash
118
+ # @return [Object] Returns the model itself
119
+ def build_from_hash(attributes)
120
+ return nil unless attributes.is_a?(Hash)
121
+ self.class.openapi_types.each_pair do |key, type|
122
+ if type =~ /\AArray<(.*)>/i
123
+ # check to ensure the input is an array given that the attribute
124
+ # is documented as an array but the input is not
125
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
126
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
127
+ end
128
+ elsif !attributes[self.class.attribute_map[key]].nil?
129
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
130
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
131
+ end
132
+
133
+ self
134
+ end
135
+
136
+ # Deserializes the data based on type
137
+ # @param string type Data type
138
+ # @param string value Value to be deserialized
139
+ # @return [Object] Deserialized data
140
+ def _deserialize(type, value)
141
+ case type.to_sym
142
+ when :DateTime
143
+ DateTime.parse(value)
144
+ when :Date
145
+ Date.parse(value)
146
+ when :String
147
+ value.to_s
148
+ when :Integer
149
+ value.to_i
150
+ when :Float
151
+ value.to_f
152
+ when :Boolean
153
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
154
+ true
155
+ else
156
+ false
157
+ end
158
+ when :Object
159
+ # generic object (usually a Hash), return directly
160
+ value
161
+ when /\AArray<(?<inner_type>.+)>\z/
162
+ inner_type = Regexp.last_match[:inner_type]
163
+ value.map { |v| _deserialize(inner_type, v) }
164
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
165
+ k_type = Regexp.last_match[:k_type]
166
+ v_type = Regexp.last_match[:v_type]
167
+ {}.tap do |hash|
168
+ value.each do |k, v|
169
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
170
+ end
171
+ end
172
+ else # model
173
+ Hubspot::Events.const_get(type).build_from_hash(value)
174
+ end
175
+ end
176
+
177
+ # Returns the string representation of the object
178
+ # @return [String] String presentation of the object
179
+ def to_s
180
+ to_hash.to_s
181
+ end
182
+
183
+ # to_body is an alias to to_hash (backward compatibility)
184
+ # @return [Hash] Returns the object in the form of hash
185
+ def to_body
186
+ to_hash
187
+ end
188
+
189
+ # Returns the object in the form of hash
190
+ # @return [Hash] Returns the object in the form of hash
191
+ def to_hash
192
+ hash = {}
193
+ self.class.attribute_map.each_pair do |attr, param|
194
+ value = self.send(attr)
195
+ if value.nil?
196
+ is_nullable = self.class.openapi_nullable.include?(attr)
197
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
198
+ end
199
+
200
+ hash[param] = _to_hash(value)
201
+ end
202
+ hash
203
+ end
204
+
205
+ # Outputs non-array value in the form of hash
206
+ # For object, use to_hash. Otherwise, just return the value
207
+ # @param [Object] value Any valid value
208
+ # @return [Hash] Returns the value in the form of hash
209
+ def _to_hash(value)
210
+ if value.is_a?(Array)
211
+ value.compact.map { |v| _to_hash(v) }
212
+ elsif value.is_a?(Hash)
213
+ {}.tap do |hash|
214
+ value.each { |k, v| hash[k] = _to_hash(v) }
215
+ end
216
+ elsif value.respond_to? :to_hash
217
+ value.to_hash
218
+ else
219
+ value
220
+ end
221
+ end
222
+ end
223
+ end
224
+ end