yasmina-motor-ruby 0.0.8

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 (80) hide show
  1. checksums.yaml +7 -0
  2. data/.fern/metadata.json +10 -0
  3. data/.fern/replay.lock +10 -0
  4. data/.fernignore +4 -0
  5. data/.rubocop.yml +103 -0
  6. data/CONTRIBUTING.md +120 -0
  7. data/LICENSE +21 -0
  8. data/README.md +173 -0
  9. data/Rakefile +20 -0
  10. data/custom.gemspec.rb +16 -0
  11. data/lib/yasminaai/client.rb +37 -0
  12. data/lib/yasminaai/environment.rb +9 -0
  13. data/lib/yasminaai/errors/api_error.rb +8 -0
  14. data/lib/yasminaai/errors/client_error.rb +17 -0
  15. data/lib/yasminaai/errors/redirect_error.rb +8 -0
  16. data/lib/yasminaai/errors/response_error.rb +42 -0
  17. data/lib/yasminaai/errors/server_error.rb +11 -0
  18. data/lib/yasminaai/errors/timeout_error.rb +8 -0
  19. data/lib/yasminaai/internal/errors/constraint_error.rb +10 -0
  20. data/lib/yasminaai/internal/errors/type_error.rb +10 -0
  21. data/lib/yasminaai/internal/http/base_request.rb +51 -0
  22. data/lib/yasminaai/internal/http/raw_client.rb +215 -0
  23. data/lib/yasminaai/internal/iterators/cursor_item_iterator.rb +28 -0
  24. data/lib/yasminaai/internal/iterators/cursor_page_iterator.rb +63 -0
  25. data/lib/yasminaai/internal/iterators/item_iterator.rb +65 -0
  26. data/lib/yasminaai/internal/iterators/offset_item_iterator.rb +30 -0
  27. data/lib/yasminaai/internal/iterators/offset_page_iterator.rb +103 -0
  28. data/lib/yasminaai/internal/json/request.rb +41 -0
  29. data/lib/yasminaai/internal/json/serializable.rb +25 -0
  30. data/lib/yasminaai/internal/multipart/multipart_encoder.rb +141 -0
  31. data/lib/yasminaai/internal/multipart/multipart_form_data.rb +78 -0
  32. data/lib/yasminaai/internal/multipart/multipart_form_data_part.rb +51 -0
  33. data/lib/yasminaai/internal/multipart/multipart_request.rb +40 -0
  34. data/lib/yasminaai/internal/types/array.rb +47 -0
  35. data/lib/yasminaai/internal/types/boolean.rb +34 -0
  36. data/lib/yasminaai/internal/types/enum.rb +56 -0
  37. data/lib/yasminaai/internal/types/hash.rb +36 -0
  38. data/lib/yasminaai/internal/types/model/field.rb +38 -0
  39. data/lib/yasminaai/internal/types/model.rb +208 -0
  40. data/lib/yasminaai/internal/types/type.rb +35 -0
  41. data/lib/yasminaai/internal/types/union.rb +161 -0
  42. data/lib/yasminaai/internal/types/unknown.rb +15 -0
  43. data/lib/yasminaai/internal/types/utils.rb +116 -0
  44. data/lib/yasminaai/ot_ps/client.rb +79 -0
  45. data/lib/yasminaai/ot_ps/types/post_issue_otp_request.rb +21 -0
  46. data/lib/yasminaai/ot_ps/types/post_quote_otp_request.rb +15 -0
  47. data/lib/yasminaai/policies/client.rb +144 -0
  48. data/lib/yasminaai/policies/types/get_policies_car_policy_request.rb +11 -0
  49. data/lib/yasminaai/policies/types/get_policies_request.rb +35 -0
  50. data/lib/yasminaai/policies/types/post_policies_request.rb +21 -0
  51. data/lib/yasminaai/quotes/client.rb +164 -0
  52. data/lib/yasminaai/quotes/types/delete_quote_requests_id_request.rb +11 -0
  53. data/lib/yasminaai/quotes/types/delete_quote_requests_id_response.rb +11 -0
  54. data/lib/yasminaai/quotes/types/get_quote_requests_id_request.rb +11 -0
  55. data/lib/yasminaai/quotes/types/get_quote_requests_request.rb +17 -0
  56. data/lib/yasminaai/quotes/types/post_quote_requests_request.rb +37 -0
  57. data/lib/yasminaai/quotes/types/post_quote_requests_request_accept_language.rb +13 -0
  58. data/lib/yasminaai/quotes/types/post_quote_requests_request_drivers_item.rb +15 -0
  59. data/lib/yasminaai/types/bad_request_error_body.rb +11 -0
  60. data/lib/yasminaai/types/benefit.rb +21 -0
  61. data/lib/yasminaai/types/company_quote.rb +25 -0
  62. data/lib/yasminaai/types/company_quote_type.rb +12 -0
  63. data/lib/yasminaai/types/error.rb +11 -0
  64. data/lib/yasminaai/types/paginated_policy_response.rb +35 -0
  65. data/lib/yasminaai/types/paginated_quote_response.rb +35 -0
  66. data/lib/yasminaai/types/pagination_link.rb +13 -0
  67. data/lib/yasminaai/types/policy.rb +39 -0
  68. data/lib/yasminaai/types/policy_aggregates.rb +14 -0
  69. data/lib/yasminaai/types/policy_month_aggregate.rb +11 -0
  70. data/lib/yasminaai/types/quote_price.rb +19 -0
  71. data/lib/yasminaai/types/quote_request_aggregates.rb +12 -0
  72. data/lib/yasminaai/types/quote_response.rb +37 -0
  73. data/lib/yasminaai/types/quote_response_drivers_item.rb +13 -0
  74. data/lib/yasminaai/types/quote_response_quotes_item.rb +25 -0
  75. data/lib/yasminaai/types/quote_response_quotes_item_type.rb +12 -0
  76. data/lib/yasminaai/types/unauthorized_error_body.rb +11 -0
  77. data/lib/yasminaai/version.rb +5 -0
  78. data/lib/yasminaai.rb +72 -0
  79. data/reference.md +872 -0
  80. metadata +121 -0
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ module Types
5
+ class Policy < Internal::Types::Model
6
+ field :id, -> { Integer }, optional: true, nullable: false
7
+
8
+ field :meta_data, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
9
+
10
+ field :start_date, -> { String }, optional: true, nullable: false
11
+
12
+ field :provider_policy_id, -> { Integer }, optional: true, nullable: false
13
+
14
+ field :provider_policy, -> { String }, optional: true, nullable: false
15
+
16
+ field :order_status, -> { Integer }, optional: true, nullable: false
17
+
18
+ field :approval_status, -> { Integer }, optional: true, nullable: false
19
+
20
+ field :end_date, -> { String }, optional: true, nullable: false
21
+
22
+ field :is_claimed, -> { Internal::Types::Boolean }, optional: true, nullable: false
23
+
24
+ field :created_at, -> { String }, optional: true, nullable: false
25
+
26
+ field :uploaded_at, -> { String }, optional: true, nullable: false
27
+
28
+ field :updated_at, -> { String }, optional: true, nullable: false
29
+
30
+ field :client_id, -> { String }, optional: true, nullable: false
31
+
32
+ field :canceled_at, -> { String }, optional: true, nullable: false
33
+
34
+ field :invoice, -> { String }, optional: true, nullable: false
35
+
36
+ field :cancellation_document, -> { String }, optional: true, nullable: false
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ module Types
5
+ # Returned only when include_aggregates is true.
6
+ class PolicyAggregates < Internal::Types::Model
7
+ field :total_count, -> { Integer }, optional: true, nullable: false
8
+
9
+ field :total_price, -> { Integer }, optional: true, nullable: false
10
+
11
+ field :by_month, -> { Internal::Types::Hash[String, Yasminaai::Types::PolicyMonthAggregate] }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ module Types
5
+ class PolicyMonthAggregate < Internal::Types::Model
6
+ field :count, -> { Integer }, optional: true, nullable: false
7
+
8
+ field :total_price, -> { Integer }, optional: true, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ module Types
5
+ class QuotePrice < Internal::Types::Model
6
+ field :quote_price_id, -> { String }, optional: true, nullable: false
7
+
8
+ field :deductible, -> { Integer }, optional: true, nullable: false
9
+
10
+ field :subtotal, -> { Integer }, optional: true, nullable: false
11
+
12
+ field :vat_percentage, -> { Integer }, optional: true, nullable: false
13
+
14
+ field :vat, -> { Integer }, optional: true, nullable: false
15
+
16
+ field :total, -> { Integer }, optional: true, nullable: false
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ module Types
5
+ # Returned only when include_aggregates is true.
6
+ class QuoteRequestAggregates < Internal::Types::Model
7
+ field :total_count, -> { Integer }, optional: true, nullable: false
8
+
9
+ field :by_month, -> { Internal::Types::Hash[String, Integer] }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ module Types
5
+ class QuoteResponse < Internal::Types::Model
6
+ field :owner_id, -> { Integer }, optional: true, nullable: false
7
+
8
+ field :phone, -> { String }, optional: true, nullable: false
9
+
10
+ field :birthdate, -> { String }, optional: true, nullable: false
11
+
12
+ field :car_sequence_number, -> { Integer }, optional: true, nullable: false
13
+
14
+ field :custom_number, -> { String }, optional: true, nullable: false
15
+
16
+ field :is_ownership_transfer, -> { Internal::Types::Boolean }, optional: true, nullable: false
17
+
18
+ field :car_estimated_cost, -> { Integer }, optional: true, nullable: false
19
+
20
+ field :car_model_year, -> { Integer }, optional: true, nullable: false
21
+
22
+ field :start_date, -> { String }, optional: true, nullable: false
23
+
24
+ field :drivers, -> { Internal::Types::Array[Yasminaai::Types::QuoteResponseDriversItem] }, optional: true, nullable: false
25
+
26
+ field :quotes, -> { Internal::Types::Array[Yasminaai::Types::QuoteResponseQuotesItem] }, optional: true, nullable: false
27
+
28
+ field :client_id, -> { String }, optional: true, nullable: false
29
+
30
+ field :updated_at, -> { String }, optional: true, nullable: false
31
+
32
+ field :created_at, -> { String }, optional: true, nullable: false
33
+
34
+ field :id, -> { Integer }, optional: true, nullable: false
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ module Types
5
+ class QuoteResponseDriversItem < Internal::Types::Model
6
+ field :owner_id, -> { String }, optional: true, nullable: false
7
+
8
+ field :birthdate, -> { String }, optional: true, nullable: false
9
+
10
+ field :driving_percentage, -> { Integer }, optional: true, nullable: false
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ module Types
5
+ class QuoteResponseQuotesItem < Internal::Types::Model
6
+ field :company_name, -> { String }, optional: true, nullable: false
7
+
8
+ field :company_name_ar, -> { String }, optional: true, nullable: false
9
+
10
+ field :type, -> { Yasminaai::Types::QuoteResponseQuotesItemType }, optional: true, nullable: false
11
+
12
+ field :insurance_type_display, -> { String }, optional: true, nullable: false
13
+
14
+ field :insurance_type_display_ar, -> { String }, optional: true, nullable: false
15
+
16
+ field :company_logo_url, -> { String }, optional: true, nullable: false
17
+
18
+ field :square_company_logo_url, -> { String }, optional: true, nullable: false
19
+
20
+ field :prices, -> { Internal::Types::Array[Yasminaai::Types::QuotePrice] }, optional: true, nullable: false
21
+
22
+ field :benefits, -> { Internal::Types::Array[Yasminaai::Types::Benefit] }, optional: true, nullable: false
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ module Types
5
+ module QuoteResponseQuotesItemType
6
+ extend Yasminaai::Internal::Types::Enum
7
+
8
+ TPL = "TPL"
9
+ COMPREHENSIVE = "Comprehensive"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ module Types
5
+ class UnauthorizedErrorBody < Internal::Types::Model
6
+ field :code, -> { String }, optional: true, nullable: false
7
+
8
+ field :message, -> { String }, optional: true, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yasminaai
4
+ VERSION = "0.0.8"
5
+ end
data/lib/yasminaai.rb ADDED
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "net/http"
5
+ require "securerandom"
6
+
7
+ require_relative "yasminaai/internal/json/serializable"
8
+ require_relative "yasminaai/internal/types/type"
9
+ require_relative "yasminaai/internal/types/utils"
10
+ require_relative "yasminaai/internal/types/union"
11
+ require_relative "yasminaai/internal/errors/constraint_error"
12
+ require_relative "yasminaai/internal/errors/type_error"
13
+ require_relative "yasminaai/internal/http/base_request"
14
+ require_relative "yasminaai/internal/json/request"
15
+ require_relative "yasminaai/internal/http/raw_client"
16
+ require_relative "yasminaai/internal/multipart/multipart_encoder"
17
+ require_relative "yasminaai/internal/multipart/multipart_form_data_part"
18
+ require_relative "yasminaai/internal/multipart/multipart_form_data"
19
+ require_relative "yasminaai/internal/multipart/multipart_request"
20
+ require_relative "yasminaai/internal/types/model/field"
21
+ require_relative "yasminaai/internal/types/model"
22
+ require_relative "yasminaai/internal/types/array"
23
+ require_relative "yasminaai/internal/types/boolean"
24
+ require_relative "yasminaai/internal/types/enum"
25
+ require_relative "yasminaai/internal/types/hash"
26
+ require_relative "yasminaai/internal/types/unknown"
27
+ require_relative "yasminaai/errors/api_error"
28
+ require_relative "yasminaai/errors/response_error"
29
+ require_relative "yasminaai/errors/client_error"
30
+ require_relative "yasminaai/errors/redirect_error"
31
+ require_relative "yasminaai/errors/server_error"
32
+ require_relative "yasminaai/errors/timeout_error"
33
+ require_relative "yasminaai/internal/iterators/item_iterator"
34
+ require_relative "yasminaai/internal/iterators/cursor_item_iterator"
35
+ require_relative "yasminaai/internal/iterators/offset_item_iterator"
36
+ require_relative "yasminaai/internal/iterators/cursor_page_iterator"
37
+ require_relative "yasminaai/internal/iterators/offset_page_iterator"
38
+ require_relative "yasminaai/quotes/types/delete_quote_requests_id_response"
39
+ require_relative "yasminaai/quotes/types/post_quote_requests_request_accept_language"
40
+ require_relative "yasminaai/quotes/types/post_quote_requests_request_drivers_item"
41
+ require_relative "yasminaai/types/unauthorized_error_body"
42
+ require_relative "yasminaai/types/bad_request_error_body"
43
+ require_relative "yasminaai/types/quote_response_drivers_item"
44
+ require_relative "yasminaai/types/quote_response_quotes_item_type"
45
+ require_relative "yasminaai/types/quote_price"
46
+ require_relative "yasminaai/types/benefit"
47
+ require_relative "yasminaai/types/quote_response_quotes_item"
48
+ require_relative "yasminaai/types/quote_response"
49
+ require_relative "yasminaai/types/company_quote_type"
50
+ require_relative "yasminaai/types/company_quote"
51
+ require_relative "yasminaai/types/policy"
52
+ require_relative "yasminaai/types/pagination_link"
53
+ require_relative "yasminaai/types/quote_request_aggregates"
54
+ require_relative "yasminaai/types/policy_month_aggregate"
55
+ require_relative "yasminaai/types/policy_aggregates"
56
+ require_relative "yasminaai/types/paginated_quote_response"
57
+ require_relative "yasminaai/types/paginated_policy_response"
58
+ require_relative "yasminaai/types/error"
59
+ require_relative "yasminaai/client"
60
+ require_relative "yasminaai/quotes/client"
61
+ require_relative "yasminaai/quotes/types/get_quote_requests_id_request"
62
+ require_relative "yasminaai/quotes/types/delete_quote_requests_id_request"
63
+ require_relative "yasminaai/quotes/types/get_quote_requests_request"
64
+ require_relative "yasminaai/quotes/types/post_quote_requests_request"
65
+ require_relative "yasminaai/policies/client"
66
+ require_relative "yasminaai/policies/types/get_policies_car_policy_request"
67
+ require_relative "yasminaai/policies/types/get_policies_request"
68
+ require_relative "yasminaai/policies/types/post_policies_request"
69
+ require_relative "yasminaai/ot_ps/client"
70
+ require_relative "yasminaai/ot_ps/types/post_quote_otp_request"
71
+ require_relative "yasminaai/ot_ps/types/post_issue_otp_request"
72
+ require_relative "yasminaai/environment"