SematextCloud 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/LICENSE +13 -0
  4. data/README.md +149 -0
  5. data/Rakefile +8 -0
  6. data/SematextCloud.gemspec +45 -0
  7. data/docs/AlertNotificationRequest.md +9 -0
  8. data/docs/AlertNotificationsApi.md +118 -0
  9. data/docs/AlertRule.md +53 -0
  10. data/docs/AlertRuleScheduleTimeRangeDto.md +7 -0
  11. data/docs/AlertRuleScheduleWeekdayDto.md +10 -0
  12. data/docs/AlertsApi.md +270 -0
  13. data/docs/App.md +32 -0
  14. data/docs/AppDescription.md +6 -0
  15. data/docs/AppMetadata.md +10 -0
  16. data/docs/AppsApi.md +369 -0
  17. data/docs/AwsSettingsControllerApi.md +63 -0
  18. data/docs/BasicAuthMethodDto.md +7 -0
  19. data/docs/BasicOrganizationDto.md +9 -0
  20. data/docs/BillingApi.md +176 -0
  21. data/docs/BillingInfo.md +8 -0
  22. data/docs/CloudWatchSettings.md +9 -0
  23. data/docs/CreateAppInfo.md +10 -0
  24. data/docs/DataSeriesFilter.md +8 -0
  25. data/docs/DataSeriesRequest.md +12 -0
  26. data/docs/Error.md +7 -0
  27. data/docs/FilterValue.md +11 -0
  28. data/docs/GenericApiResponse.md +9 -0
  29. data/docs/Invitation.md +15 -0
  30. data/docs/LogsAppApi.md +58 -0
  31. data/docs/MetricsApi.md +227 -0
  32. data/docs/MonitoringAppApi.md +58 -0
  33. data/docs/NotificationIntegration.md +15 -0
  34. data/docs/Plan.md +18 -0
  35. data/docs/ReportInfo.md +13 -0
  36. data/docs/ResetPasswordApi.md +58 -0
  37. data/docs/SavedQueriesApi.md +220 -0
  38. data/docs/SavedQuery.md +18 -0
  39. data/docs/ServiceIntegration.md +17 -0
  40. data/docs/SubscriptionsApi.md +114 -0
  41. data/docs/TagApiControllerApi.md +212 -0
  42. data/docs/UpdateAppInfo.md +14 -0
  43. data/docs/UserInfo.md +6 -0
  44. data/docs/UserPermissions.md +8 -0
  45. data/docs/UserRole.md +8 -0
  46. data/lib/SematextCloud.rb +78 -0
  47. data/lib/SematextCloud/api/alert_notifications_api.rb +137 -0
  48. data/lib/SematextCloud/api/alerts_api.rb +283 -0
  49. data/lib/SematextCloud/api/apps_api.rb +381 -0
  50. data/lib/SematextCloud/api/aws_settings_controller_api.rb +83 -0
  51. data/lib/SematextCloud/api/billing_api.rb +197 -0
  52. data/lib/SematextCloud/api/logs_app_api.rb +75 -0
  53. data/lib/SematextCloud/api/metrics_api.rb +247 -0
  54. data/lib/SematextCloud/api/monitoring_app_api.rb +75 -0
  55. data/lib/SematextCloud/api/reset_password_api.rb +75 -0
  56. data/lib/SematextCloud/api/saved_queries_api.rb +237 -0
  57. data/lib/SematextCloud/api/subscriptions_api.rb +133 -0
  58. data/lib/SematextCloud/api/tag_api_controller_api.rb +247 -0
  59. data/lib/SematextCloud/api_client.rb +389 -0
  60. data/lib/SematextCloud/api_error.rb +38 -0
  61. data/lib/SematextCloud/configuration.rb +209 -0
  62. data/lib/SematextCloud/models/alert_notification_request.rb +212 -0
  63. data/lib/SematextCloud/models/alert_rule.rb +652 -0
  64. data/lib/SematextCloud/models/alert_rule_schedule_time_range_dto.rb +192 -0
  65. data/lib/SematextCloud/models/alert_rule_schedule_weekday_dto.rb +221 -0
  66. data/lib/SematextCloud/models/app.rb +419 -0
  67. data/lib/SematextCloud/models/app_description.rb +183 -0
  68. data/lib/SematextCloud/models/app_metadata.rb +268 -0
  69. data/lib/SematextCloud/models/basic_auth_method_dto.rb +226 -0
  70. data/lib/SematextCloud/models/basic_organization_dto.rb +246 -0
  71. data/lib/SematextCloud/models/billing_info.rb +201 -0
  72. data/lib/SematextCloud/models/cloud_watch_settings.rb +256 -0
  73. data/lib/SematextCloud/models/create_app_info.rb +220 -0
  74. data/lib/SematextCloud/models/data_series_filter.rb +237 -0
  75. data/lib/SematextCloud/models/data_series_request.rb +283 -0
  76. data/lib/SematextCloud/models/error.rb +192 -0
  77. data/lib/SematextCloud/models/filter_value.rb +230 -0
  78. data/lib/SematextCloud/models/generic_api_response.rb +214 -0
  79. data/lib/SematextCloud/models/invitation.rb +326 -0
  80. data/lib/SematextCloud/models/notification_integration.rb +324 -0
  81. data/lib/SematextCloud/models/plan.rb +337 -0
  82. data/lib/SematextCloud/models/report_info.rb +247 -0
  83. data/lib/SematextCloud/models/saved_query.rb +291 -0
  84. data/lib/SematextCloud/models/service_integration.rb +282 -0
  85. data/lib/SematextCloud/models/update_app_info.rb +289 -0
  86. data/lib/SematextCloud/models/user_info.rb +183 -0
  87. data/lib/SematextCloud/models/user_permissions.rb +201 -0
  88. data/lib/SematextCloud/models/user_role.rb +247 -0
  89. data/lib/SematextCloud/version.rb +15 -0
  90. data/spec/api/alert_notifications_api_spec.rb +60 -0
  91. data/spec/api/alerts_api_spec.rb +90 -0
  92. data/spec/api/apps_api_spec.rb +113 -0
  93. data/spec/api/aws_settings_controller_api_spec.rb +48 -0
  94. data/spec/api/billing_api_spec.rb +72 -0
  95. data/spec/api/logs_app_api_spec.rb +46 -0
  96. data/spec/api/metrics_api_spec.rb +83 -0
  97. data/spec/api/monitoring_app_api_spec.rb +46 -0
  98. data/spec/api/reset_password_api_spec.rb +46 -0
  99. data/spec/api/saved_queries_api_spec.rb +80 -0
  100. data/spec/api/subscriptions_api_spec.rb +58 -0
  101. data/spec/api/tag_api_controller_api_spec.rb +88 -0
  102. data/spec/api_client_spec.rb +226 -0
  103. data/spec/configuration_spec.rb +42 -0
  104. data/spec/models/alert_notification_request_spec.rb +59 -0
  105. data/spec/models/alert_rule_schedule_time_range_dto_spec.rb +47 -0
  106. data/spec/models/alert_rule_schedule_weekday_dto_spec.rb +65 -0
  107. data/spec/models/alert_rule_spec.rb +327 -0
  108. data/spec/models/app_description_spec.rb +41 -0
  109. data/spec/models/app_metadata_spec.rb +77 -0
  110. data/spec/models/app_spec.rb +197 -0
  111. data/spec/models/basic_auth_method_dto_spec.rb +51 -0
  112. data/spec/models/basic_organization_dto_spec.rb +63 -0
  113. data/spec/models/billing_info_spec.rb +53 -0
  114. data/spec/models/cloud_watch_settings_spec.rb +67 -0
  115. data/spec/models/create_app_info_spec.rb +65 -0
  116. data/spec/models/data_series_filter_spec.rb +57 -0
  117. data/spec/models/data_series_request_spec.rb +81 -0
  118. data/spec/models/error_spec.rb +47 -0
  119. data/spec/models/filter_value_spec.rb +71 -0
  120. data/spec/models/generic_api_response_spec.rb +59 -0
  121. data/spec/models/invitation_spec.rb +107 -0
  122. data/spec/models/notification_integration_spec.rb +107 -0
  123. data/spec/models/plan_spec.rb +121 -0
  124. data/spec/models/report_info_spec.rb +83 -0
  125. data/spec/models/saved_query_spec.rb +113 -0
  126. data/spec/models/service_integration_spec.rb +107 -0
  127. data/spec/models/update_app_info_spec.rb +93 -0
  128. data/spec/models/user_info_spec.rb +41 -0
  129. data/spec/models/user_permissions_spec.rb +53 -0
  130. data/spec/models/user_role_spec.rb +61 -0
  131. data/spec/spec_helper.rb +111 -0
  132. metadata +395 -0
@@ -0,0 +1,192 @@
1
+ =begin
2
+ #Sematext Cloud API
3
+
4
+ #API Explorer provides access and documentation for Sematext REST API. The REST API requires the API Key to be sent as part of `Authorization` header. E.g.: `Authorization : apiKey e5f18450-205a-48eb-8589-7d49edaea813`.
5
+
6
+ OpenAPI spec version: v3
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.12
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module SematextCloud
16
+ class AlertRuleScheduleTimeRangeDto
17
+ attr_accessor :_end
18
+
19
+ attr_accessor :start
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'_end' => :'end',
25
+ :'start' => :'start'
26
+ }
27
+ end
28
+
29
+ # Attribute type mapping.
30
+ def self.swagger_types
31
+ {
32
+ :'_end' => :'String',
33
+ :'start' => :'String'
34
+ }
35
+ end
36
+
37
+ # Initializes the object
38
+ # @param [Hash] attributes Model attributes in the form of hash
39
+ def initialize(attributes = {})
40
+ return unless attributes.is_a?(Hash)
41
+
42
+ # convert string to symbol for hash key
43
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
44
+
45
+ if attributes.has_key?(:'end')
46
+ self._end = attributes[:'end']
47
+ end
48
+
49
+ if attributes.has_key?(:'start')
50
+ self.start = attributes[:'start']
51
+ end
52
+ end
53
+
54
+ # Show invalid properties with the reasons. Usually used together with valid?
55
+ # @return Array for valid properties with the reasons
56
+ def list_invalid_properties
57
+ invalid_properties = Array.new
58
+ invalid_properties
59
+ end
60
+
61
+ # Check to see if the all the properties in the model are valid
62
+ # @return true if the model is valid
63
+ def valid?
64
+ true
65
+ end
66
+
67
+ # Checks equality by comparing each attribute.
68
+ # @param [Object] Object to be compared
69
+ def ==(o)
70
+ return true if self.equal?(o)
71
+ self.class == o.class &&
72
+ _end == o._end &&
73
+ start == o.start
74
+ end
75
+
76
+ # @see the `==` method
77
+ # @param [Object] Object to be compared
78
+ def eql?(o)
79
+ self == o
80
+ end
81
+
82
+ # Calculates hash code according to all attributes.
83
+ # @return [Fixnum] Hash code
84
+ def hash
85
+ [_end, start].hash
86
+ end
87
+
88
+ # Builds the object from hash
89
+ # @param [Hash] attributes Model attributes in the form of hash
90
+ # @return [Object] Returns the model itself
91
+ def build_from_hash(attributes)
92
+ return nil unless attributes.is_a?(Hash)
93
+ self.class.swagger_types.each_pair do |key, type|
94
+ if type =~ /\AArray<(.*)>/i
95
+ # check to ensure the input is an array given that the the attribute
96
+ # is documented as an array but the input is not
97
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
98
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
99
+ end
100
+ elsif !attributes[self.class.attribute_map[key]].nil?
101
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
102
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
103
+ end
104
+
105
+ self
106
+ end
107
+
108
+ # Deserializes the data based on type
109
+ # @param string type Data type
110
+ # @param string value Value to be deserialized
111
+ # @return [Object] Deserialized data
112
+ def _deserialize(type, value)
113
+ case type.to_sym
114
+ when :DateTime
115
+ DateTime.parse(value)
116
+ when :Date
117
+ Date.parse(value)
118
+ when :String
119
+ value.to_s
120
+ when :Integer
121
+ value.to_i
122
+ when :Float
123
+ value.to_f
124
+ when :BOOLEAN
125
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
126
+ true
127
+ else
128
+ false
129
+ end
130
+ when :Object
131
+ # generic object (usually a Hash), return directly
132
+ value
133
+ when /\AArray<(?<inner_type>.+)>\z/
134
+ inner_type = Regexp.last_match[:inner_type]
135
+ value.map { |v| _deserialize(inner_type, v) }
136
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
137
+ k_type = Regexp.last_match[:k_type]
138
+ v_type = Regexp.last_match[:v_type]
139
+ {}.tap do |hash|
140
+ value.each do |k, v|
141
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
142
+ end
143
+ end
144
+ else # model
145
+ temp_model = SematextCloud.const_get(type).new
146
+ temp_model.build_from_hash(value)
147
+ end
148
+ end
149
+
150
+ # Returns the string representation of the object
151
+ # @return [String] String presentation of the object
152
+ def to_s
153
+ to_hash.to_s
154
+ end
155
+
156
+ # to_body is an alias to to_hash (backward compatibility)
157
+ # @return [Hash] Returns the object in the form of hash
158
+ def to_body
159
+ to_hash
160
+ end
161
+
162
+ # Returns the object in the form of hash
163
+ # @return [Hash] Returns the object in the form of hash
164
+ def to_hash
165
+ hash = {}
166
+ self.class.attribute_map.each_pair do |attr, param|
167
+ value = self.send(attr)
168
+ next if value.nil?
169
+ hash[param] = _to_hash(value)
170
+ end
171
+ hash
172
+ end
173
+
174
+ # Outputs non-array value in the form of hash
175
+ # For object, use to_hash. Otherwise, just return the value
176
+ # @param [Object] value Any valid value
177
+ # @return [Hash] Returns the value in the form of hash
178
+ def _to_hash(value)
179
+ if value.is_a?(Array)
180
+ value.compact.map { |v| _to_hash(v) }
181
+ elsif value.is_a?(Hash)
182
+ {}.tap do |hash|
183
+ value.each { |k, v| hash[k] = _to_hash(v) }
184
+ end
185
+ elsif value.respond_to? :to_hash
186
+ value.to_hash
187
+ else
188
+ value
189
+ end
190
+ end
191
+ end
192
+ end
@@ -0,0 +1,221 @@
1
+ =begin
2
+ #Sematext Cloud API
3
+
4
+ #API Explorer provides access and documentation for Sematext REST API. The REST API requires the API Key to be sent as part of `Authorization` header. E.g.: `Authorization : apiKey e5f18450-205a-48eb-8589-7d49edaea813`.
5
+
6
+ OpenAPI spec version: v3
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.12
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module SematextCloud
16
+ class AlertRuleScheduleWeekdayDto
17
+ attr_accessor :day
18
+
19
+ attr_accessor :index
20
+
21
+ attr_accessor :intervals
22
+
23
+ attr_accessor :label
24
+
25
+ attr_accessor :type
26
+
27
+ # Attribute mapping from ruby-style variable name to JSON key.
28
+ def self.attribute_map
29
+ {
30
+ :'day' => :'day',
31
+ :'index' => :'index',
32
+ :'intervals' => :'intervals',
33
+ :'label' => :'label',
34
+ :'type' => :'type'
35
+ }
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.swagger_types
40
+ {
41
+ :'day' => :'String',
42
+ :'index' => :'Integer',
43
+ :'intervals' => :'Array<AlertRuleScheduleTimeRangeDto>',
44
+ :'label' => :'String',
45
+ :'type' => :'String'
46
+ }
47
+ end
48
+
49
+ # Initializes the object
50
+ # @param [Hash] attributes Model attributes in the form of hash
51
+ def initialize(attributes = {})
52
+ return unless attributes.is_a?(Hash)
53
+
54
+ # convert string to symbol for hash key
55
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
56
+
57
+ if attributes.has_key?(:'day')
58
+ self.day = attributes[:'day']
59
+ end
60
+
61
+ if attributes.has_key?(:'index')
62
+ self.index = attributes[:'index']
63
+ end
64
+
65
+ if attributes.has_key?(:'intervals')
66
+ if (value = attributes[:'intervals']).is_a?(Array)
67
+ self.intervals = value
68
+ end
69
+ end
70
+
71
+ if attributes.has_key?(:'label')
72
+ self.label = attributes[:'label']
73
+ end
74
+
75
+ if attributes.has_key?(:'type')
76
+ self.type = attributes[:'type']
77
+ end
78
+ end
79
+
80
+ # Show invalid properties with the reasons. Usually used together with valid?
81
+ # @return Array for valid properties with the reasons
82
+ def list_invalid_properties
83
+ invalid_properties = Array.new
84
+ invalid_properties
85
+ end
86
+
87
+ # Check to see if the all the properties in the model are valid
88
+ # @return true if the model is valid
89
+ def valid?
90
+ true
91
+ end
92
+
93
+ # Checks equality by comparing each attribute.
94
+ # @param [Object] Object to be compared
95
+ def ==(o)
96
+ return true if self.equal?(o)
97
+ self.class == o.class &&
98
+ day == o.day &&
99
+ index == o.index &&
100
+ intervals == o.intervals &&
101
+ label == o.label &&
102
+ type == o.type
103
+ end
104
+
105
+ # @see the `==` method
106
+ # @param [Object] Object to be compared
107
+ def eql?(o)
108
+ self == o
109
+ end
110
+
111
+ # Calculates hash code according to all attributes.
112
+ # @return [Fixnum] Hash code
113
+ def hash
114
+ [day, index, intervals, label, type].hash
115
+ end
116
+
117
+ # Builds the object from hash
118
+ # @param [Hash] attributes Model attributes in the form of hash
119
+ # @return [Object] Returns the model itself
120
+ def build_from_hash(attributes)
121
+ return nil unless attributes.is_a?(Hash)
122
+ self.class.swagger_types.each_pair do |key, type|
123
+ if type =~ /\AArray<(.*)>/i
124
+ # check to ensure the input is an array given that the the attribute
125
+ # is documented as an array but the input is not
126
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
127
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
128
+ end
129
+ elsif !attributes[self.class.attribute_map[key]].nil?
130
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
131
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
132
+ end
133
+
134
+ self
135
+ end
136
+
137
+ # Deserializes the data based on type
138
+ # @param string type Data type
139
+ # @param string value Value to be deserialized
140
+ # @return [Object] Deserialized data
141
+ def _deserialize(type, value)
142
+ case type.to_sym
143
+ when :DateTime
144
+ DateTime.parse(value)
145
+ when :Date
146
+ Date.parse(value)
147
+ when :String
148
+ value.to_s
149
+ when :Integer
150
+ value.to_i
151
+ when :Float
152
+ value.to_f
153
+ when :BOOLEAN
154
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
155
+ true
156
+ else
157
+ false
158
+ end
159
+ when :Object
160
+ # generic object (usually a Hash), return directly
161
+ value
162
+ when /\AArray<(?<inner_type>.+)>\z/
163
+ inner_type = Regexp.last_match[:inner_type]
164
+ value.map { |v| _deserialize(inner_type, v) }
165
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
166
+ k_type = Regexp.last_match[:k_type]
167
+ v_type = Regexp.last_match[:v_type]
168
+ {}.tap do |hash|
169
+ value.each do |k, v|
170
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
171
+ end
172
+ end
173
+ else # model
174
+ temp_model = SematextCloud.const_get(type).new
175
+ temp_model.build_from_hash(value)
176
+ end
177
+ end
178
+
179
+ # Returns the string representation of the object
180
+ # @return [String] String presentation of the object
181
+ def to_s
182
+ to_hash.to_s
183
+ end
184
+
185
+ # to_body is an alias to to_hash (backward compatibility)
186
+ # @return [Hash] Returns the object in the form of hash
187
+ def to_body
188
+ to_hash
189
+ end
190
+
191
+ # Returns the object in the form of hash
192
+ # @return [Hash] Returns the object in the form of hash
193
+ def to_hash
194
+ hash = {}
195
+ self.class.attribute_map.each_pair do |attr, param|
196
+ value = self.send(attr)
197
+ next if value.nil?
198
+ hash[param] = _to_hash(value)
199
+ end
200
+ hash
201
+ end
202
+
203
+ # Outputs non-array value in the form of hash
204
+ # For object, use to_hash. Otherwise, just return the value
205
+ # @param [Object] value Any valid value
206
+ # @return [Hash] Returns the value in the form of hash
207
+ def _to_hash(value)
208
+ if value.is_a?(Array)
209
+ value.compact.map { |v| _to_hash(v) }
210
+ elsif value.is_a?(Hash)
211
+ {}.tap do |hash|
212
+ value.each { |k, v| hash[k] = _to_hash(v) }
213
+ end
214
+ elsif value.respond_to? :to_hash
215
+ value.to_hash
216
+ else
217
+ value
218
+ end
219
+ end
220
+ end
221
+ end
@@ -0,0 +1,419 @@
1
+ =begin
2
+ #Sematext Cloud API
3
+
4
+ #API Explorer provides access and documentation for Sematext REST API. The REST API requires the API Key to be sent as part of `Authorization` header. E.g.: `Authorization : apiKey e5f18450-205a-48eb-8589-7d49edaea813`.
5
+
6
+ OpenAPI spec version: v3
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.12
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module SematextCloud
16
+ class App
17
+ attr_accessor :ajax_threshold
18
+
19
+ attr_accessor :app_type
20
+
21
+ attr_accessor :app_type_id
22
+
23
+ attr_accessor :creator_email
24
+
25
+ attr_accessor :credit_card_expiry
26
+
27
+ attr_accessor :credit_card_number
28
+
29
+ attr_accessor :description
30
+
31
+ attr_accessor :display_status
32
+
33
+ attr_accessor :first_data_saved_date
34
+
35
+ attr_accessor :id
36
+
37
+ attr_accessor :integration
38
+
39
+ attr_accessor :last_data_received_date
40
+
41
+ attr_accessor :last_data_saved_date
42
+
43
+ attr_accessor :logged_in_user_app_role
44
+
45
+ attr_accessor :monthly_invoice_account
46
+
47
+ attr_accessor :name
48
+
49
+ attr_accessor :owner_email
50
+
51
+ attr_accessor :owning_organization
52
+
53
+ attr_accessor :page_load_threshold
54
+
55
+ attr_accessor :payment_method_id
56
+
57
+ attr_accessor :plan
58
+
59
+ attr_accessor :prepaid_account
60
+
61
+ attr_accessor :status
62
+
63
+ attr_accessor :token
64
+
65
+ attr_accessor :trial_end_date
66
+
67
+ attr_accessor :url_group_limit
68
+
69
+ attr_accessor :user_roles
70
+
71
+ # Attribute mapping from ruby-style variable name to JSON key.
72
+ def self.attribute_map
73
+ {
74
+ :'ajax_threshold' => :'ajaxThreshold',
75
+ :'app_type' => :'appType',
76
+ :'app_type_id' => :'appTypeId',
77
+ :'creator_email' => :'creatorEmail',
78
+ :'credit_card_expiry' => :'creditCardExpiry',
79
+ :'credit_card_number' => :'creditCardNumber',
80
+ :'description' => :'description',
81
+ :'display_status' => :'displayStatus',
82
+ :'first_data_saved_date' => :'firstDataSavedDate',
83
+ :'id' => :'id',
84
+ :'integration' => :'integration',
85
+ :'last_data_received_date' => :'lastDataReceivedDate',
86
+ :'last_data_saved_date' => :'lastDataSavedDate',
87
+ :'logged_in_user_app_role' => :'loggedInUserAppRole',
88
+ :'monthly_invoice_account' => :'monthlyInvoiceAccount',
89
+ :'name' => :'name',
90
+ :'owner_email' => :'ownerEmail',
91
+ :'owning_organization' => :'owningOrganization',
92
+ :'page_load_threshold' => :'pageLoadThreshold',
93
+ :'payment_method_id' => :'paymentMethodId',
94
+ :'plan' => :'plan',
95
+ :'prepaid_account' => :'prepaidAccount',
96
+ :'status' => :'status',
97
+ :'token' => :'token',
98
+ :'trial_end_date' => :'trialEndDate',
99
+ :'url_group_limit' => :'urlGroupLimit',
100
+ :'user_roles' => :'userRoles'
101
+ }
102
+ end
103
+
104
+ # Attribute type mapping.
105
+ def self.swagger_types
106
+ {
107
+ :'ajax_threshold' => :'Integer',
108
+ :'app_type' => :'String',
109
+ :'app_type_id' => :'Integer',
110
+ :'creator_email' => :'String',
111
+ :'credit_card_expiry' => :'String',
112
+ :'credit_card_number' => :'String',
113
+ :'description' => :'String',
114
+ :'display_status' => :'String',
115
+ :'first_data_saved_date' => :'Integer',
116
+ :'id' => :'Integer',
117
+ :'integration' => :'ServiceIntegration',
118
+ :'last_data_received_date' => :'Integer',
119
+ :'last_data_saved_date' => :'Integer',
120
+ :'logged_in_user_app_role' => :'String',
121
+ :'monthly_invoice_account' => :'BOOLEAN',
122
+ :'name' => :'String',
123
+ :'owner_email' => :'String',
124
+ :'owning_organization' => :'BasicOrganizationDto',
125
+ :'page_load_threshold' => :'Integer',
126
+ :'payment_method_id' => :'Integer',
127
+ :'plan' => :'Plan',
128
+ :'prepaid_account' => :'BOOLEAN',
129
+ :'status' => :'String',
130
+ :'token' => :'String',
131
+ :'trial_end_date' => :'Integer',
132
+ :'url_group_limit' => :'Integer',
133
+ :'user_roles' => :'Array<UserRole>'
134
+ }
135
+ end
136
+
137
+ # Initializes the object
138
+ # @param [Hash] attributes Model attributes in the form of hash
139
+ def initialize(attributes = {})
140
+ return unless attributes.is_a?(Hash)
141
+
142
+ # convert string to symbol for hash key
143
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
144
+
145
+ if attributes.has_key?(:'ajaxThreshold')
146
+ self.ajax_threshold = attributes[:'ajaxThreshold']
147
+ end
148
+
149
+ if attributes.has_key?(:'appType')
150
+ self.app_type = attributes[:'appType']
151
+ end
152
+
153
+ if attributes.has_key?(:'appTypeId')
154
+ self.app_type_id = attributes[:'appTypeId']
155
+ end
156
+
157
+ if attributes.has_key?(:'creatorEmail')
158
+ self.creator_email = attributes[:'creatorEmail']
159
+ end
160
+
161
+ if attributes.has_key?(:'creditCardExpiry')
162
+ self.credit_card_expiry = attributes[:'creditCardExpiry']
163
+ end
164
+
165
+ if attributes.has_key?(:'creditCardNumber')
166
+ self.credit_card_number = attributes[:'creditCardNumber']
167
+ end
168
+
169
+ if attributes.has_key?(:'description')
170
+ self.description = attributes[:'description']
171
+ end
172
+
173
+ if attributes.has_key?(:'displayStatus')
174
+ self.display_status = attributes[:'displayStatus']
175
+ end
176
+
177
+ if attributes.has_key?(:'firstDataSavedDate')
178
+ self.first_data_saved_date = attributes[:'firstDataSavedDate']
179
+ end
180
+
181
+ if attributes.has_key?(:'id')
182
+ self.id = attributes[:'id']
183
+ end
184
+
185
+ if attributes.has_key?(:'integration')
186
+ self.integration = attributes[:'integration']
187
+ end
188
+
189
+ if attributes.has_key?(:'lastDataReceivedDate')
190
+ self.last_data_received_date = attributes[:'lastDataReceivedDate']
191
+ end
192
+
193
+ if attributes.has_key?(:'lastDataSavedDate')
194
+ self.last_data_saved_date = attributes[:'lastDataSavedDate']
195
+ end
196
+
197
+ if attributes.has_key?(:'loggedInUserAppRole')
198
+ self.logged_in_user_app_role = attributes[:'loggedInUserAppRole']
199
+ end
200
+
201
+ if attributes.has_key?(:'monthlyInvoiceAccount')
202
+ self.monthly_invoice_account = attributes[:'monthlyInvoiceAccount']
203
+ end
204
+
205
+ if attributes.has_key?(:'name')
206
+ self.name = attributes[:'name']
207
+ end
208
+
209
+ if attributes.has_key?(:'ownerEmail')
210
+ self.owner_email = attributes[:'ownerEmail']
211
+ end
212
+
213
+ if attributes.has_key?(:'owningOrganization')
214
+ self.owning_organization = attributes[:'owningOrganization']
215
+ end
216
+
217
+ if attributes.has_key?(:'pageLoadThreshold')
218
+ self.page_load_threshold = attributes[:'pageLoadThreshold']
219
+ end
220
+
221
+ if attributes.has_key?(:'paymentMethodId')
222
+ self.payment_method_id = attributes[:'paymentMethodId']
223
+ end
224
+
225
+ if attributes.has_key?(:'plan')
226
+ self.plan = attributes[:'plan']
227
+ end
228
+
229
+ if attributes.has_key?(:'prepaidAccount')
230
+ self.prepaid_account = attributes[:'prepaidAccount']
231
+ end
232
+
233
+ if attributes.has_key?(:'status')
234
+ self.status = attributes[:'status']
235
+ end
236
+
237
+ if attributes.has_key?(:'token')
238
+ self.token = attributes[:'token']
239
+ end
240
+
241
+ if attributes.has_key?(:'trialEndDate')
242
+ self.trial_end_date = attributes[:'trialEndDate']
243
+ end
244
+
245
+ if attributes.has_key?(:'urlGroupLimit')
246
+ self.url_group_limit = attributes[:'urlGroupLimit']
247
+ end
248
+
249
+ if attributes.has_key?(:'userRoles')
250
+ if (value = attributes[:'userRoles']).is_a?(Array)
251
+ self.user_roles = value
252
+ end
253
+ end
254
+ end
255
+
256
+ # Show invalid properties with the reasons. Usually used together with valid?
257
+ # @return Array for valid properties with the reasons
258
+ def list_invalid_properties
259
+ invalid_properties = Array.new
260
+ invalid_properties
261
+ end
262
+
263
+ # Check to see if the all the properties in the model are valid
264
+ # @return true if the model is valid
265
+ def valid?
266
+ true
267
+ end
268
+
269
+ # Checks equality by comparing each attribute.
270
+ # @param [Object] Object to be compared
271
+ def ==(o)
272
+ return true if self.equal?(o)
273
+ self.class == o.class &&
274
+ ajax_threshold == o.ajax_threshold &&
275
+ app_type == o.app_type &&
276
+ app_type_id == o.app_type_id &&
277
+ creator_email == o.creator_email &&
278
+ credit_card_expiry == o.credit_card_expiry &&
279
+ credit_card_number == o.credit_card_number &&
280
+ description == o.description &&
281
+ display_status == o.display_status &&
282
+ first_data_saved_date == o.first_data_saved_date &&
283
+ id == o.id &&
284
+ integration == o.integration &&
285
+ last_data_received_date == o.last_data_received_date &&
286
+ last_data_saved_date == o.last_data_saved_date &&
287
+ logged_in_user_app_role == o.logged_in_user_app_role &&
288
+ monthly_invoice_account == o.monthly_invoice_account &&
289
+ name == o.name &&
290
+ owner_email == o.owner_email &&
291
+ owning_organization == o.owning_organization &&
292
+ page_load_threshold == o.page_load_threshold &&
293
+ payment_method_id == o.payment_method_id &&
294
+ plan == o.plan &&
295
+ prepaid_account == o.prepaid_account &&
296
+ status == o.status &&
297
+ token == o.token &&
298
+ trial_end_date == o.trial_end_date &&
299
+ url_group_limit == o.url_group_limit &&
300
+ user_roles == o.user_roles
301
+ end
302
+
303
+ # @see the `==` method
304
+ # @param [Object] Object to be compared
305
+ def eql?(o)
306
+ self == o
307
+ end
308
+
309
+ # Calculates hash code according to all attributes.
310
+ # @return [Fixnum] Hash code
311
+ def hash
312
+ [ajax_threshold, app_type, app_type_id, creator_email, credit_card_expiry, credit_card_number, description, display_status, first_data_saved_date, id, integration, last_data_received_date, last_data_saved_date, logged_in_user_app_role, monthly_invoice_account, name, owner_email, owning_organization, page_load_threshold, payment_method_id, plan, prepaid_account, status, token, trial_end_date, url_group_limit, user_roles].hash
313
+ end
314
+
315
+ # Builds the object from hash
316
+ # @param [Hash] attributes Model attributes in the form of hash
317
+ # @return [Object] Returns the model itself
318
+ def build_from_hash(attributes)
319
+ return nil unless attributes.is_a?(Hash)
320
+ self.class.swagger_types.each_pair do |key, type|
321
+ if type =~ /\AArray<(.*)>/i
322
+ # check to ensure the input is an array given that the the attribute
323
+ # is documented as an array but the input is not
324
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
325
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
326
+ end
327
+ elsif !attributes[self.class.attribute_map[key]].nil?
328
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
329
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
330
+ end
331
+
332
+ self
333
+ end
334
+
335
+ # Deserializes the data based on type
336
+ # @param string type Data type
337
+ # @param string value Value to be deserialized
338
+ # @return [Object] Deserialized data
339
+ def _deserialize(type, value)
340
+ case type.to_sym
341
+ when :DateTime
342
+ DateTime.parse(value)
343
+ when :Date
344
+ Date.parse(value)
345
+ when :String
346
+ value.to_s
347
+ when :Integer
348
+ value.to_i
349
+ when :Float
350
+ value.to_f
351
+ when :BOOLEAN
352
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
353
+ true
354
+ else
355
+ false
356
+ end
357
+ when :Object
358
+ # generic object (usually a Hash), return directly
359
+ value
360
+ when /\AArray<(?<inner_type>.+)>\z/
361
+ inner_type = Regexp.last_match[:inner_type]
362
+ value.map { |v| _deserialize(inner_type, v) }
363
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
364
+ k_type = Regexp.last_match[:k_type]
365
+ v_type = Regexp.last_match[:v_type]
366
+ {}.tap do |hash|
367
+ value.each do |k, v|
368
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
369
+ end
370
+ end
371
+ else # model
372
+ temp_model = SematextCloud.const_get(type).new
373
+ temp_model.build_from_hash(value)
374
+ end
375
+ end
376
+
377
+ # Returns the string representation of the object
378
+ # @return [String] String presentation of the object
379
+ def to_s
380
+ to_hash.to_s
381
+ end
382
+
383
+ # to_body is an alias to to_hash (backward compatibility)
384
+ # @return [Hash] Returns the object in the form of hash
385
+ def to_body
386
+ to_hash
387
+ end
388
+
389
+ # Returns the object in the form of hash
390
+ # @return [Hash] Returns the object in the form of hash
391
+ def to_hash
392
+ hash = {}
393
+ self.class.attribute_map.each_pair do |attr, param|
394
+ value = self.send(attr)
395
+ next if value.nil?
396
+ hash[param] = _to_hash(value)
397
+ end
398
+ hash
399
+ end
400
+
401
+ # Outputs non-array value in the form of hash
402
+ # For object, use to_hash. Otherwise, just return the value
403
+ # @param [Object] value Any valid value
404
+ # @return [Hash] Returns the value in the form of hash
405
+ def _to_hash(value)
406
+ if value.is_a?(Array)
407
+ value.compact.map { |v| _to_hash(v) }
408
+ elsif value.is_a?(Hash)
409
+ {}.tap do |hash|
410
+ value.each { |k, v| hash[k] = _to_hash(v) }
411
+ end
412
+ elsif value.respond_to? :to_hash
413
+ value.to_hash
414
+ else
415
+ value
416
+ end
417
+ end
418
+ end
419
+ end