microsoft_kiota_abstractions 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/dependabot.yml +12 -0
  4. data/.github/workflows/code-ql.yml +76 -0
  5. data/.github/workflows/conflicting-pr-label.yml +34 -0
  6. data/.github/workflows/projectsbot.yml +81 -0
  7. data/.github/workflows/release.yml +45 -0
  8. data/.github/workflows/ruby.yml +34 -0
  9. data/.gitignore +58 -0
  10. data/CHANGELOG.md +18 -0
  11. data/CODE_OF_CONDUCT.md +9 -0
  12. data/Gemfile +6 -0
  13. data/LICENSE +21 -0
  14. data/README.md +51 -0
  15. data/Rakefile +8 -0
  16. data/SECURITY.md +41 -0
  17. data/SUPPORT.md +25 -0
  18. data/lib/microsoft_kiota_abstractions/api_client_builder.rb +19 -0
  19. data/lib/microsoft_kiota_abstractions/api_error.rb +23 -0
  20. data/lib/microsoft_kiota_abstractions/authentication/access_token_provider.rb +20 -0
  21. data/lib/microsoft_kiota_abstractions/authentication/allowed_hosts_validator.rb +39 -0
  22. data/lib/microsoft_kiota_abstractions/authentication/anonymous_authentication_provider.rb +7 -0
  23. data/lib/microsoft_kiota_abstractions/authentication/authentication_provider.rb +7 -0
  24. data/lib/microsoft_kiota_abstractions/authentication/base_bearer_token_authentication_provider.rb +26 -0
  25. data/lib/microsoft_kiota_abstractions/http_method.rb +17 -0
  26. data/lib/microsoft_kiota_abstractions/request_adapter.rb +25 -0
  27. data/lib/microsoft_kiota_abstractions/request_headers.rb +44 -0
  28. data/lib/microsoft_kiota_abstractions/request_information.rb +130 -0
  29. data/lib/microsoft_kiota_abstractions/request_option.rb +7 -0
  30. data/lib/microsoft_kiota_abstractions/serialization/additional_data_holder.rb +7 -0
  31. data/lib/microsoft_kiota_abstractions/serialization/iso_duration.rb +209 -0
  32. data/lib/microsoft_kiota_abstractions/serialization/parsable.rb +11 -0
  33. data/lib/microsoft_kiota_abstractions/serialization/parse_node.rb +61 -0
  34. data/lib/microsoft_kiota_abstractions/serialization/parse_node_factory.rb +7 -0
  35. data/lib/microsoft_kiota_abstractions/serialization/parse_node_factory_registry.rb +42 -0
  36. data/lib/microsoft_kiota_abstractions/serialization/serialization_writer.rb +69 -0
  37. data/lib/microsoft_kiota_abstractions/serialization/serialization_writer_factory.rb +9 -0
  38. data/lib/microsoft_kiota_abstractions/serialization/serialization_writer_factory_registry.rb +40 -0
  39. data/lib/microsoft_kiota_abstractions/version.rb +5 -0
  40. data/lib/microsoft_kiota_abstractions.rb +25 -0
  41. data/microsoft_kiota_abstractions.gemspec +36 -0
  42. metadata +165 -0
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './authentication_provider'
4
+ require_relative './access_token_provider'
5
+
6
+ module MicrosoftKiotaAbstractions
7
+ # Provides a base class for implementing AuthenticationProvider for Bearer token scheme
8
+ class BaseBearerTokenAuthenticationProvider
9
+ include MicrosoftKiotaAbstractions::AuthenticationProvider
10
+ def initialize(access_token_provider)
11
+ raise StandardError, 'access_token_provider parameter cannot be nil' if access_token_provider.nil?
12
+
13
+ @access_token_provider = access_token_provider
14
+ end
15
+
16
+ AUTHORIZATION_HEADER_KEY = 'Authorization'
17
+ def authenticate_request(request, additional_properties = {})
18
+ raise StandardError, 'Request cannot be null' if request.nil?
19
+
20
+ Fiber.new do
21
+ token = @access_token_provider.get_authorization_token(request.uri, additional_properties).resume
22
+ request.headers.add(AUTHORIZATION_HEADER_KEY, "Bearer #{token}") unless token.nil? || token.empty?
23
+ end unless request.headers.get_all.key?(AUTHORIZATION_HEADER_KEY)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ module MicrosoftKiotaAbstractions
2
+ module HttpMethod
3
+
4
+ HTTP_METHOD = {
5
+ GET: :GET,
6
+ POST: :POST,
7
+ PATCH: :PATCH,
8
+ DELETE: :DELETE,
9
+ OPTIONS: :OPTIONS,
10
+ CONNECT: :CONNECT,
11
+ PUT: :PUT,
12
+ TRACE: :TRACE,
13
+ HEAD: :HEAD
14
+ }
15
+
16
+ end
17
+ end
@@ -0,0 +1,25 @@
1
+ require_relative 'request_information'
2
+
3
+ module MicrosoftKiotaAbstractions
4
+ module RequestAdapter
5
+
6
+ def send_async(request_info, factory, errors_mapping)
7
+ raise NotImplementedError.new
8
+ end
9
+
10
+ # TODO we're most likley missing something for enums and collections or at least at the implemenation level
11
+
12
+ def get_serialization_writer_factory()
13
+ raise NotImplementedError.new
14
+ end
15
+
16
+ def set_base_url(base_url)
17
+ raise NotImplementedError.new
18
+ end
19
+
20
+ def get_base_url()
21
+ raise NotImplementedError.new
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,44 @@
1
+ module MicrosoftKiotaAbstractions
2
+ class RequestHeaders
3
+ def initialize()
4
+ @headers = Hash.new
5
+ end
6
+ def add(key, value)
7
+ if key.nil? || key.empty? || value.nil? || value.empty? then
8
+ raise ArgumentError, 'key and value cannot be nil or empty'
9
+ end
10
+ existing_value = @headers[key]
11
+ if existing_value.nil? then
12
+ if value.kind_of?(Array) then
13
+ @headers[key] = value
14
+ else
15
+ @headers[key] = Array[value.to_s]
16
+ end
17
+ else
18
+ if value.kind_of?(Array) then
19
+ @headers[key] = existing_value | value
20
+ else
21
+ existing_value << value.to_s
22
+ end
23
+ end
24
+ end
25
+ def get(key)
26
+ if key.nil? || key.empty? then
27
+ raise ArgumentError, 'key cannot be nil or empty'
28
+ end
29
+ return @headers[key]
30
+ end
31
+ def remove(key)
32
+ if key.nil? || key.empty? then
33
+ raise ArgumentError, 'key cannot be nil or empty'
34
+ end
35
+ @headers.delete(key)
36
+ end
37
+ def clear()
38
+ @headers.clear()
39
+ end
40
+ def get_all()
41
+ return @headers
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,130 @@
1
+ require 'uri'
2
+ require 'addressable/template'
3
+ require_relative 'http_method'
4
+ require_relative 'request_headers'
5
+
6
+ module MicrosoftKiotaAbstractions
7
+ class RequestInformation
8
+ attr_reader :content, :http_method, :headers
9
+ attr_accessor :url_template, :path_parameters, :query_parameters
10
+ @@binary_content_type = 'application/octet-stream'
11
+ @@content_type_header = 'Content-Type'
12
+ @@raw_url_key = 'request-raw-url'
13
+
14
+ def initialize()
15
+ @headers = RequestHeaders.new
16
+ @query_parameters = Hash.new
17
+ @path_parameters = Hash.new
18
+ end
19
+
20
+ def uri=(arg)
21
+ if arg.nil? || arg.empty?
22
+ raise ArgumentError, 'arg cannot be nil or empty'
23
+ end
24
+ self.path_parameters.clear()
25
+ self.query_parameters.clear()
26
+ @uri = URI(arg)
27
+ end
28
+
29
+ def uri
30
+ if @uri != nil
31
+ return @uri
32
+ else
33
+ if self.path_parameters[@@raw_url_key] != nil
34
+ self.uri = self.path_parameters[@@raw_url_key]
35
+ return @uri
36
+ else
37
+ template = Addressable::Template.new(@url_template)
38
+ return URI(template.expand(self.path_parameters.merge(self.query_parameters)).to_s)
39
+ end
40
+ end
41
+ end
42
+
43
+ def add_request_options(request_options_to_add)
44
+ unless request_options_to_add.nil? then
45
+ @request_options ||= Hash.new
46
+ unless request_options_to_add.kind_of?(Array) then
47
+ request_options_to_add = [request_options_to_add]
48
+ end
49
+ request_options_to_add.each do |request_option|
50
+ key = request_option.get_key
51
+ @request_options[key] = request_option
52
+ end
53
+ end
54
+ end
55
+
56
+ def get_request_options()
57
+ if @request_options.nil? then
58
+ return []
59
+ else
60
+ return @request_options.values
61
+ end
62
+ end
63
+
64
+ def get_request_option(key)
65
+ if @request_options.nil? || key.nil? || key.empty? then
66
+ return nil
67
+ else
68
+ return @request_options[key]
69
+ end
70
+ end
71
+
72
+ def remove_request_options(keys)
73
+ unless keys.nil? || @request_options.nil? then
74
+ unless keys.kind_of?(Array) then
75
+ keys = [keys]
76
+ end
77
+ keys.each do |key|
78
+ @request_options.delete(key)
79
+ end
80
+ end
81
+ end
82
+
83
+ def http_method=(method)
84
+ @http_method = HttpMethod::HTTP_METHOD[method]
85
+ end
86
+
87
+ def set_stream_content(value = $stdin)
88
+ @content = value
89
+ @headers.add(@@content_type_header, @@binary_content_type)
90
+ end
91
+
92
+ def set_content_from_parsable(request_adapter, content_type, values)
93
+ begin
94
+ writer = request_adapter.get_serialization_writer_factory().get_serialization_writer(content_type)
95
+ @headers.add(@@content_type_header, content_type)
96
+ if values != nil && values.kind_of?(Array)
97
+ writer.write_collection_of_object_values(nil, values)
98
+ else
99
+ writer.write_object_value(nil, values);
100
+ end
101
+ this.content = writer.get_serialized_content();
102
+ rescue => exception
103
+ raise Exception.new "could not serialize payload"
104
+ end
105
+ end
106
+
107
+ def add_headers_from_raw_object(h)
108
+ h.select{|x,y| @headers.add(x.to_s, y)} unless !h
109
+ end
110
+
111
+ def set_query_string_parameters_from_raw_object(q)
112
+ if !q || q.is_a?(Hash) || q.is_a?(Array)
113
+ return
114
+ end
115
+ q.class.instance_methods(false).select{|x|
116
+ method_name = x.to_s
117
+ unless method_name == "compare_by_identity" || method_name == "get_query_parameter" || method_name.end_with?("=") || method_name.end_with?("?") || method_name.end_with?("!") then
118
+ begin
119
+ key = q.get_query_parameter(method_name)
120
+ rescue => exception
121
+ key = method_name
122
+ end
123
+ value = eval("q.#{method_name}")
124
+ self.query_parameters[key] = value unless value.nil?
125
+ end
126
+ }
127
+ end
128
+
129
+ end
130
+ end
@@ -0,0 +1,7 @@
1
+ module MicrosoftKiotaAbstractions
2
+ module RequestOption
3
+ def get_key()
4
+ raise NotImplementedError.new
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module MicrosoftKiotaAbstractions
2
+ module AdditionalDataHolder
3
+ def additional_data
4
+ @additional_data ||= Hash.new
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,209 @@
1
+ # frozen_string_literal: true
2
+ require 'iso8601'
3
+
4
+ module MicrosoftKiotaAbstractions
5
+ # Wrapper Class for ISO8601::Duration
6
+ # Integer support for :years, :months, :weeks, :days, :hours, :minutes, :seconds
7
+ # Initialize with a hash of symbols to integers eg { :years => 3, :days => 4, seconds: => 2}
8
+ # or with an ISO8601 formated string eg "PT3H12M5S".
9
+ class ISODuration
10
+ attr_reader :years, :months, :weeks, :days, :hours, :minutes, :seconds
11
+
12
+ UNITS = { :years => 'Y',
13
+ :months => 'M',
14
+ :weeks => 'W',
15
+ :days => 'D',
16
+ :hours => 'H',
17
+ :minutes => 'M',
18
+ :seconds => 'S'}
19
+
20
+ CONVERSIONS = {
21
+ :ms_to_s => 1000,
22
+ :s_to_m => 60,
23
+ :m_to_h => 60,
24
+ :h_to_d => 24,
25
+ :d_to_w => 7,
26
+ :m_to_y => 12
27
+ }
28
+ def initialize(input)
29
+ if input.is_a? String
30
+ @duration_obj = ISO8601::Duration.new(input)
31
+ elsif input.is_a? Hash
32
+ @duration_obj = parse_hash(input)
33
+ else
34
+ raise StandardError, 'Must provide initialize ISODuration by providing a hash or an ISO8601-formatted string.'
35
+ end
36
+ update_member_variables
37
+ normalize
38
+ end
39
+
40
+ def string
41
+ input = { :seconds => @seconds, :minutes => @minutes, :hours => @hours,
42
+ :days => @days, :weeks => @weeks, :months => @months,
43
+ :years => @years }
44
+ iso_str = 'P'
45
+ UNITS.each do |unit, abrev|
46
+ iso_str += input[unit].to_s + abrev unless input[unit].zero?
47
+ iso_str += 'T' if unit == :days
48
+ end
49
+ iso_str = iso_str.strip
50
+ iso_str = iso_str.chomp('T') if (iso_str[-1]).eql? 'T'
51
+ iso_str
52
+ end
53
+
54
+ def normalize
55
+ if @seconds >= CONVERSIONS[:s_to_m]
56
+ @minutes += (@seconds / CONVERSIONS[:s_to_m]).floor
57
+ @seconds %= CONVERSIONS[:s_to_m]
58
+ end
59
+ if @minutes >= CONVERSIONS[:m_to_h]
60
+ @hours += (@minutes / CONVERSIONS[:m_to_h]).floor
61
+ @minutes %= CONVERSIONS[:m_to_h]
62
+ end
63
+ if @hours >= CONVERSIONS[:h_to_d]
64
+ @days += (@hours / CONVERSIONS[:h_to_d]).floor
65
+ @hours %= CONVERSIONS[:h_to_d]
66
+ end
67
+ if @days >= CONVERSIONS[:d_to_w] && @months == 0 && @years == 0
68
+ @weeks += (@days / CONVERSIONS[:d_to_w]).floor
69
+ @days %= CONVERSIONS[:d_to_w]
70
+ end
71
+ if @months > CONVERSIONS[:m_to_y]
72
+ @years += (@months / CONVERSIONS[:m_to_y]).floor
73
+ @months %= CONVERSIONS[:m_to_y]
74
+ end
75
+ end
76
+
77
+ def seconds=(value)
78
+ input = { :seconds => value, :minutes => @minutes, :hours => @hours,
79
+ :days => @days, :weeks => @weeks, :months => @months,
80
+ :years => @years }
81
+ @duration_obj = parse_hash(input)
82
+ @seconds = value
83
+ normalize
84
+ end
85
+
86
+ def minutes=(value)
87
+ input = { :seconds => @seconds, :minutes => value, :hours => @hours,
88
+ :days => @days, :weeks => @weeks, :months => @months,
89
+ :years => @years }
90
+ @duration_obj = parse_hash(input)
91
+ @minutes = value
92
+ normalize
93
+ end
94
+
95
+ def hours=(value)
96
+ input = { :seconds => @seconds, :minutes => @minutes, :hours => value,
97
+ :days => @days, :weeks => @weeks, :months => @months,
98
+ :years => @years }
99
+ @duration_obj = parse_hash(input)
100
+ @hours = value
101
+ normalize
102
+ end
103
+
104
+ def days=(value)
105
+ input = { :seconds => @seconds, :minutes => @minutes, :hours => @hours,
106
+ :days => value, :weeks => @weeks, :months => @months,
107
+ :years => @years }
108
+ @duration_obj = parse_hash(input)
109
+ @days = value
110
+ normalize
111
+ end
112
+
113
+ def weeks=(value)
114
+ input = { :seconds => @seconds, :minutes => @minutes, :hours => @hours,
115
+ :days => @days, :weeks => value, :months => @months,
116
+ :years => @years }
117
+ @duration_obj = parse_hash(input)
118
+ @weeks = value
119
+ normalize
120
+ end
121
+
122
+ def months=(value)
123
+ input = { :seconds => @seconds, :minutes => @minutes, :hours => @hours,
124
+ :days => @days, :weeks => @weeks, :months => value,
125
+ :years => @years }
126
+ @duration_obj = parse_hash(input)
127
+ @months = value
128
+ normalize
129
+ end
130
+
131
+ def years=(value)
132
+ input = { :seconds => @seconds, :minutes => @minutes, :hours => @hours,
133
+ :days => @days, :weeks => @weeks, :months => @months,
134
+ :years => value }
135
+ @duration_obj = parse_hash(input)
136
+ @years = value
137
+ normalize
138
+ end
139
+
140
+ def abs
141
+ @duration_obj = @duration_obj.abs
142
+ update_member_variables
143
+ return self
144
+ end
145
+
146
+ def +(other)
147
+ new_obj = self.duration_obj + other.duration_obj
148
+ MicrosoftKiotaAbstractions::ISODuration.new(dur_obj_to_hash(new_obj))
149
+ end
150
+
151
+ def -(other)
152
+ new_obj = self.duration_obj - other.duration_obj
153
+ MicrosoftKiotaAbstractions::ISODuration.new(dur_obj_to_hash(new_obj))
154
+ end
155
+
156
+ def ==(other)
157
+ @duration_obj == other.duration_obj
158
+ end
159
+
160
+ def -@
161
+ @duration_obj = -@duration_obj
162
+ update_member_variables
163
+ end
164
+
165
+ def eql?(other)
166
+ @duration_obj == other.duration_obj
167
+ end
168
+
169
+ protected
170
+
171
+ attr_accessor :duration_obj
172
+
173
+ def parse_hash(input)
174
+ iso_str = 'P'
175
+ input.each do |keys, values|
176
+ raise StandardError, "The key #{keys} is not recognized" unless UNITS.key?(keys)
177
+ end
178
+ UNITS.each do |unit, abrev|
179
+ iso_str += input[unit].to_s + abrev if input.key?(unit) && !input[unit].zero?
180
+ iso_str += 'T' if unit == :days
181
+ end
182
+ iso_str = iso_str.strip
183
+ iso_str = iso_str.chomp('T') if (iso_str[-1]).eql? 'T'
184
+ ISO8601::Duration.new(iso_str)
185
+ end
186
+
187
+ def update_member_variables
188
+ @seconds = @duration_obj.seconds.nil? ? 0 : ((@duration_obj.seconds.to_s).split('S')[0]).to_i
189
+ @minutes = @duration_obj.minutes.nil? ? 0 : ((@duration_obj.minutes.to_s).split('H')[0]).to_i
190
+ @hours = @duration_obj.hours.nil? ? 0 : ((@duration_obj.hours.to_s).split('H')[0]).to_i
191
+ @days = @duration_obj.days.nil? ? 0 : ((@duration_obj.days.to_s).split('D')[0]).to_i
192
+ @weeks = @duration_obj.weeks.nil? ? 0 : ((@duration_obj.weeks.to_s).split('W')[0]).to_i
193
+ @months = @duration_obj.months.nil? ? 0 : ((@duration_obj.months.to_s).split('M')[0]).to_i
194
+ @years = @duration_obj.years.nil? ? 0 : ((@duration_obj.years.to_s).split('Y')[0]).to_i
195
+ end
196
+
197
+ def dur_obj_to_hash(dur_obj)
198
+ result_hash = {}
199
+ result_hash[:seconds] = dur_obj.seconds.nil? ? 0 : ((dur_obj.seconds.to_s).split('S')[0]).to_i
200
+ result_hash[:minutes] = dur_obj.minutes.nil? ? 0 : ((dur_obj.minutes.to_s).split('H')[0]).to_i
201
+ result_hash[:hours] = dur_obj.hours.nil? ? 0 : ((dur_obj.hours.to_s).split('H')[0]).to_i
202
+ result_hash[:days] = dur_obj.days.nil? ? 0 : ((dur_obj.days.to_s).split('D')[0]).to_i
203
+ result_hash[:weeks] = dur_obj.weeks.nil? ? 0 : ((dur_obj.weeks.to_s).split('W')[0]).to_i
204
+ result_hash[:months] = dur_obj.months.nil? ? 0 : ((dur_obj.months.to_s).split('M')[0]).to_i
205
+ result_hash[:years] = dur_obj.years.nil? ? 0 : ((dur_obj.years.to_s).split('Y')[0]).to_i
206
+ result_hash
207
+ end
208
+ end
209
+ end
@@ -0,0 +1,11 @@
1
+ module MicrosoftKiotaAbstractions
2
+ module Parsable
3
+ def get_field_deserializers
4
+ raise NotImplementedError.new
5
+ end
6
+
7
+ def serialize(writer)
8
+ raise NotImplementedError.new
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,61 @@
1
+ module MicrosoftKiotaAbstractions
2
+ module ParseNode
3
+
4
+ def get_string_value()
5
+ raise NotImplementedError.new
6
+ end
7
+
8
+ def get_boolean_value()
9
+ raise NotImplementedError.new
10
+ end
11
+
12
+ def get_number_value()
13
+ raise NotImplementedError.new
14
+ end
15
+
16
+ def get_guid_value()
17
+ raise NotImplementedError.new
18
+ end
19
+
20
+ def get_date_value()
21
+ raise NotImplementedError.new
22
+ end
23
+
24
+ def get_time_value()
25
+ raise NotImplementedError.new
26
+ end
27
+
28
+ def get_date_time_value()
29
+ raise NotImplementedError.new
30
+ end
31
+
32
+ def get_duration_value()
33
+ raise NotImplementedError.new
34
+ end
35
+
36
+ def get_collection_of_primitive_values()
37
+ raise NotImplementedError.new
38
+ end
39
+
40
+ def get_collection_of_object_values(factory)
41
+ raise NotImplementedError.new
42
+ end
43
+
44
+ def get_object_value(factory)
45
+ raise NotImplementedError.new
46
+ end
47
+
48
+ def assign_field_values(item)
49
+ raise NotImplementedError.new
50
+ end
51
+
52
+ def get_enum_value(type)
53
+ raise NotImplementedError.new
54
+ end
55
+
56
+ def get_child_node(name)
57
+ raise NotImplementedError.new
58
+ end
59
+
60
+ end
61
+ end
@@ -0,0 +1,7 @@
1
+ module MicrosoftKiotaAbstractions
2
+ module ParseNodeFactory
3
+ def ParseNodeFactory.get_parse_node(content_type, content)
4
+ raise NotImplementedError.new
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,42 @@
1
+ require_relative 'parse_node_factory'
2
+
3
+ module MicrosoftKiotaAbstractions
4
+ class ParseNodeFactoryRegistry
5
+ include ParseNodeFactory
6
+
7
+ class << self
8
+ attr_accessor :default_instance
9
+ def default_instance; @default_instance ||= ParseNodeFactoryRegistry.new; end
10
+ end
11
+
12
+ def default_instance
13
+ self.class.default_instance
14
+ end
15
+
16
+ def content_type_associated_factories
17
+ @content_type_associated_factories ||= Hash.new
18
+ end
19
+
20
+ def get_parse_node(content_type, content)
21
+ if !content_type
22
+ raise Exception.new 'content type cannot be undefined or empty'
23
+ end
24
+ if !content
25
+ raise Exception.new 'content cannot be undefined or empty'
26
+ end
27
+ vendor_specific_content_type = content_type.split(';').first
28
+ factory = @content_type_associated_factories[vendor_specific_content_type]
29
+ if factory
30
+ return factory.get_parse_node(vendor_specific_content_type, content)
31
+ end
32
+
33
+ clean_content_type = vendor_specific_content_type.gsub(/[^\/]+\+/i, '')
34
+ factory = @content_type_associated_factories[clean_content_type]
35
+ if factory
36
+ return factory.get_parse_node(clean_content_type, content)
37
+ end
38
+ raise Exception.new "Content type #{contentType} does not have a factory to be parsed"
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,69 @@
1
+ module MicrosoftKiotaAbstractions
2
+ module SerializationWriter
3
+
4
+ def write_string_value(key, value)
5
+ raise NotImplementedError.new
6
+ end
7
+
8
+ def write_boolean_value(key, value)
9
+ raise NotImplementedError.new
10
+ end
11
+
12
+ def write_number_value(key, value)
13
+ raise NotImplementedError.new
14
+ end
15
+
16
+ def write_float_value(key, value)
17
+ raise NotImplementedError.new
18
+ end
19
+
20
+ def get_date_value(key, value)
21
+ raise NotImplementedError.new
22
+ end
23
+
24
+ def write_guid_value(key, value)
25
+ raise NotImplementedError.new
26
+ end
27
+
28
+ def write_date_value(key, value)
29
+ raise NotImplementedError.new
30
+ end
31
+
32
+ def write_time_value(key, value)
33
+ raise NotImplementedError.new
34
+ end
35
+
36
+ def write_date_time_value(key, value)
37
+ raise NotImplementedError.new
38
+ end
39
+
40
+ def write_duration_value(key, value)
41
+ raise NotImplementedError.new
42
+ end
43
+
44
+ def write_collection_of_primitive_values(key, value)
45
+ raise NotImplementedError.new
46
+ end
47
+
48
+ def write_collection_of_object_values(key, value)
49
+ raise NotImplementedError.new
50
+ end
51
+
52
+ def write_enum_value(key, value)
53
+ raise NotImplementedError.new
54
+ end
55
+
56
+ def get_serialized_content()
57
+ raise NotImplementedError.new
58
+ end
59
+
60
+ def write_additional_data(type)
61
+ raise NotImplementedError.new
62
+ end
63
+
64
+ def write_any_value(key, value)
65
+ raise NotImplementedError.new
66
+ end
67
+
68
+ end
69
+ end
@@ -0,0 +1,9 @@
1
+ module MicrosoftKiotaAbstractions
2
+ module SerializationWriterFactory
3
+
4
+ def get_serialization_writer(content_type)
5
+ raise NotImplementedError.new
6
+ end
7
+
8
+ end
9
+ end