google-calendar-apimatic-sdk 1.0.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 (94) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +168 -0
  4. data/bin/console +15 -0
  5. data/lib/calendar_api/api_helper.rb +10 -0
  6. data/lib/calendar_api/apis/base_api.rb +67 -0
  7. data/lib/calendar_api/apis/calendar_list_api.rb +63 -0
  8. data/lib/calendar_api/apis/channels_api.rb +42 -0
  9. data/lib/calendar_api/apis/events_api.rb +354 -0
  10. data/lib/calendar_api/apis/free_busy_api.rb +37 -0
  11. data/lib/calendar_api/apis/oauth_authorization_api.rb +87 -0
  12. data/lib/calendar_api/client.rb +103 -0
  13. data/lib/calendar_api/configuration.rb +177 -0
  14. data/lib/calendar_api/exceptions/api_exception.rb +21 -0
  15. data/lib/calendar_api/exceptions/error_response_error1_exception.rb +46 -0
  16. data/lib/calendar_api/exceptions/oauth_provider_exception.rb +64 -0
  17. data/lib/calendar_api/http/api_response.rb +19 -0
  18. data/lib/calendar_api/http/auth/oauth_2.rb +162 -0
  19. data/lib/calendar_api/http/http_call_back.rb +10 -0
  20. data/lib/calendar_api/http/http_method_enum.rb +10 -0
  21. data/lib/calendar_api/http/http_request.rb +10 -0
  22. data/lib/calendar_api/http/http_response.rb +10 -0
  23. data/lib/calendar_api/http/proxy_settings.rb +22 -0
  24. data/lib/calendar_api/logging/configuration/api_logging_configuration.rb +186 -0
  25. data/lib/calendar_api/logging/sdk_logger.rb +17 -0
  26. data/lib/calendar_api/models/attachment.rb +115 -0
  27. data/lib/calendar_api/models/attendee.rb +167 -0
  28. data/lib/calendar_api/models/auto_decline_mode.rb +40 -0
  29. data/lib/calendar_api/models/base_model.rb +110 -0
  30. data/lib/calendar_api/models/birthday_properties.rb +96 -0
  31. data/lib/calendar_api/models/birthday_type.rb +48 -0
  32. data/lib/calendar_api/models/calendar_access_role.rb +44 -0
  33. data/lib/calendar_api/models/calendar_list_entry.rb +278 -0
  34. data/lib/calendar_api/models/calendar_list_entry_conference_properties.rb +83 -0
  35. data/lib/calendar_api/models/calendar_list_entry_notification_settings.rb +85 -0
  36. data/lib/calendar_api/models/calendar_list_response.rb +129 -0
  37. data/lib/calendar_api/models/calendar_notification.rb +86 -0
  38. data/lib/calendar_api/models/calendar_notification_method.rb +27 -0
  39. data/lib/calendar_api/models/calendar_notification_type.rb +48 -0
  40. data/lib/calendar_api/models/channel.rb +129 -0
  41. data/lib/calendar_api/models/channel_params.rb +75 -0
  42. data/lib/calendar_api/models/channel_type.rb +36 -0
  43. data/lib/calendar_api/models/chat_status.rb +36 -0
  44. data/lib/calendar_api/models/conference_create_request.rb +99 -0
  45. data/lib/calendar_api/models/conference_create_request_status.rb +76 -0
  46. data/lib/calendar_api/models/conference_data.rb +137 -0
  47. data/lib/calendar_api/models/conference_data_version.rb +43 -0
  48. data/lib/calendar_api/models/conference_entry_point.rb +126 -0
  49. data/lib/calendar_api/models/conference_request_status_code.rb +40 -0
  50. data/lib/calendar_api/models/conference_solution.rb +95 -0
  51. data/lib/calendar_api/models/conference_solution_key.rb +74 -0
  52. data/lib/calendar_api/models/conference_solution_type.rb +40 -0
  53. data/lib/calendar_api/models/custom_location.rb +75 -0
  54. data/lib/calendar_api/models/entry_point_type.rb +44 -0
  55. data/lib/calendar_api/models/error_response.rb +75 -0
  56. data/lib/calendar_api/models/error_response_error.rb +104 -0
  57. data/lib/calendar_api/models/error_response_error_errors_items.rb +95 -0
  58. data/lib/calendar_api/models/event.rb +551 -0
  59. data/lib/calendar_api/models/event_date_time.rb +107 -0
  60. data/lib/calendar_api/models/event_list.rb +208 -0
  61. data/lib/calendar_api/models/event_order_by.rb +36 -0
  62. data/lib/calendar_api/models/event_reminders.rb +95 -0
  63. data/lib/calendar_api/models/event_source.rb +86 -0
  64. data/lib/calendar_api/models/event_status.rb +40 -0
  65. data/lib/calendar_api/models/event_transparency.rb +37 -0
  66. data/lib/calendar_api/models/event_type.rb +52 -0
  67. data/lib/calendar_api/models/event_visibility.rb +44 -0
  68. data/lib/calendar_api/models/extended_properties.rb +87 -0
  69. data/lib/calendar_api/models/focus_time_properties.rb +99 -0
  70. data/lib/calendar_api/models/free_busy_calendar.rb +103 -0
  71. data/lib/calendar_api/models/free_busy_error.rb +85 -0
  72. data/lib/calendar_api/models/free_busy_group.rb +94 -0
  73. data/lib/calendar_api/models/free_busy_request.rb +150 -0
  74. data/lib/calendar_api/models/free_busy_request_item.rb +72 -0
  75. data/lib/calendar_api/models/free_busy_response.rb +135 -0
  76. data/lib/calendar_api/models/oauth_provider_error.rb +62 -0
  77. data/lib/calendar_api/models/oauth_scope.rb +41 -0
  78. data/lib/calendar_api/models/oauth_token.rb +96 -0
  79. data/lib/calendar_api/models/office_location.rb +116 -0
  80. data/lib/calendar_api/models/out_of_office_properties.rb +88 -0
  81. data/lib/calendar_api/models/person.rb +106 -0
  82. data/lib/calendar_api/models/reminder.rb +83 -0
  83. data/lib/calendar_api/models/reminder_method.rb +36 -0
  84. data/lib/calendar_api/models/response_status.rb +44 -0
  85. data/lib/calendar_api/models/send_updates.rb +40 -0
  86. data/lib/calendar_api/models/stop_channel_request.rb +85 -0
  87. data/lib/calendar_api/models/time_period.rb +102 -0
  88. data/lib/calendar_api/models/watch_request.rb +113 -0
  89. data/lib/calendar_api/models/working_location_properties.rb +107 -0
  90. data/lib/calendar_api/models/working_location_type.rb +40 -0
  91. data/lib/calendar_api/utilities/date_time_helper.rb +11 -0
  92. data/lib/calendar_api/utilities/file_wrapper.rb +28 -0
  93. data/lib/calendar_api.rb +114 -0
  94. metadata +176 -0
@@ -0,0 +1,76 @@
1
+ # calendar_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CalendarApi
7
+ # Status of the conference create request.
8
+ class ConferenceCreateRequestStatus < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Status of the conference create request.
13
+ # @return [ConferenceRequestStatusCode]
14
+ attr_accessor :status_code
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['status_code'] = 'statusCode'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ %w[
26
+ status_code
27
+ ]
28
+ end
29
+
30
+ # An array for nullable fields
31
+ def self.nullables
32
+ []
33
+ end
34
+
35
+ def initialize(status_code: SKIP, additional_properties: nil)
36
+ # Add additional model properties to the instance
37
+ additional_properties = {} if additional_properties.nil?
38
+
39
+ @status_code = status_code unless status_code == SKIP
40
+ @additional_properties = additional_properties
41
+ end
42
+
43
+ # Creates an instance of the object from a hash.
44
+ def self.from_hash(hash)
45
+ return nil unless hash
46
+
47
+ # Extract variables from the hash.
48
+ status_code = hash.key?('statusCode') ? hash['statusCode'] : SKIP
49
+
50
+ # Create a new hash for additional properties, removing known properties.
51
+ new_hash = hash.reject { |k, _| names.value?(k) }
52
+
53
+ additional_properties = APIHelper.get_additional_properties(
54
+ new_hash, proc { |value| value }
55
+ )
56
+
57
+ # Create object from extracted values.
58
+ ConferenceCreateRequestStatus.new(status_code: status_code,
59
+ additional_properties: additional_properties)
60
+ end
61
+
62
+ # Provides a human-readable string representation of the object.
63
+ def to_s
64
+ class_name = self.class.name.split('::').last
65
+ "<#{class_name} status_code: #{@status_code}, additional_properties:"\
66
+ " #{@additional_properties}>"
67
+ end
68
+
69
+ # Provides a debugging-friendly string with detailed object information.
70
+ def inspect
71
+ class_name = self.class.name.split('::').last
72
+ "<#{class_name} status_code: #{@status_code.inspect}, additional_properties:"\
73
+ " #{@additional_properties}>"
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,137 @@
1
+ # calendar_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CalendarApi
7
+ # Information about a conference (e.g. Google Meet).
8
+ class ConferenceData < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # A request to generate a new conference and attach it to the event.
13
+ # @return [ConferenceCreateRequest]
14
+ attr_accessor :create_request
15
+
16
+ # Information about individual conference entry points.
17
+ # @return [Array[ConferenceEntryPoint]]
18
+ attr_accessor :entry_points
19
+
20
+ # Conference solution information, such as Google Meet.
21
+ # @return [ConferenceSolution]
22
+ attr_accessor :conference_solution
23
+
24
+ # The ID of the conference.
25
+ # @return [String]
26
+ attr_accessor :conference_id
27
+
28
+ # Additional notes to display to the user. May contain HTML.
29
+ # @return [String]
30
+ attr_accessor :notes
31
+
32
+ # Server-generated signature of the conference data.
33
+ # @return [String]
34
+ attr_accessor :signature
35
+
36
+ # A mapping from model property names to API property names.
37
+ def self.names
38
+ @_hash = {} if @_hash.nil?
39
+ @_hash['create_request'] = 'createRequest'
40
+ @_hash['entry_points'] = 'entryPoints'
41
+ @_hash['conference_solution'] = 'conferenceSolution'
42
+ @_hash['conference_id'] = 'conferenceId'
43
+ @_hash['notes'] = 'notes'
44
+ @_hash['signature'] = 'signature'
45
+ @_hash
46
+ end
47
+
48
+ # An array for optional fields
49
+ def self.optionals
50
+ %w[
51
+ create_request
52
+ entry_points
53
+ conference_solution
54
+ conference_id
55
+ notes
56
+ signature
57
+ ]
58
+ end
59
+
60
+ # An array for nullable fields
61
+ def self.nullables
62
+ []
63
+ end
64
+
65
+ def initialize(create_request: SKIP, entry_points: SKIP,
66
+ conference_solution: SKIP, conference_id: SKIP, notes: SKIP,
67
+ signature: SKIP, additional_properties: nil)
68
+ # Add additional model properties to the instance
69
+ additional_properties = {} if additional_properties.nil?
70
+
71
+ @create_request = create_request unless create_request == SKIP
72
+ @entry_points = entry_points unless entry_points == SKIP
73
+ @conference_solution = conference_solution unless conference_solution == SKIP
74
+ @conference_id = conference_id unless conference_id == SKIP
75
+ @notes = notes unless notes == SKIP
76
+ @signature = signature unless signature == SKIP
77
+ @additional_properties = additional_properties
78
+ end
79
+
80
+ # Creates an instance of the object from a hash.
81
+ def self.from_hash(hash)
82
+ return nil unless hash
83
+
84
+ # Extract variables from the hash.
85
+ create_request = ConferenceCreateRequest.from_hash(hash['createRequest']) if
86
+ hash['createRequest']
87
+ # Parameter is an array, so we need to iterate through it
88
+ entry_points = nil
89
+ unless hash['entryPoints'].nil?
90
+ entry_points = []
91
+ hash['entryPoints'].each do |structure|
92
+ entry_points << (ConferenceEntryPoint.from_hash(structure) if structure)
93
+ end
94
+ end
95
+
96
+ entry_points = SKIP unless hash.key?('entryPoints')
97
+ conference_solution = ConferenceSolution.from_hash(hash['conferenceSolution']) if
98
+ hash['conferenceSolution']
99
+ conference_id = hash.key?('conferenceId') ? hash['conferenceId'] : SKIP
100
+ notes = hash.key?('notes') ? hash['notes'] : SKIP
101
+ signature = hash.key?('signature') ? hash['signature'] : SKIP
102
+
103
+ # Create a new hash for additional properties, removing known properties.
104
+ new_hash = hash.reject { |k, _| names.value?(k) }
105
+
106
+ additional_properties = APIHelper.get_additional_properties(
107
+ new_hash, proc { |value| value }
108
+ )
109
+
110
+ # Create object from extracted values.
111
+ ConferenceData.new(create_request: create_request,
112
+ entry_points: entry_points,
113
+ conference_solution: conference_solution,
114
+ conference_id: conference_id,
115
+ notes: notes,
116
+ signature: signature,
117
+ additional_properties: additional_properties)
118
+ end
119
+
120
+ # Provides a human-readable string representation of the object.
121
+ def to_s
122
+ class_name = self.class.name.split('::').last
123
+ "<#{class_name} create_request: #{@create_request}, entry_points: #{@entry_points},"\
124
+ " conference_solution: #{@conference_solution}, conference_id: #{@conference_id}, notes:"\
125
+ " #{@notes}, signature: #{@signature}, additional_properties: #{@additional_properties}>"
126
+ end
127
+
128
+ # Provides a debugging-friendly string with detailed object information.
129
+ def inspect
130
+ class_name = self.class.name.split('::').last
131
+ "<#{class_name} create_request: #{@create_request.inspect}, entry_points:"\
132
+ " #{@entry_points.inspect}, conference_solution: #{@conference_solution.inspect},"\
133
+ " conference_id: #{@conference_id.inspect}, notes: #{@notes.inspect}, signature:"\
134
+ " #{@signature.inspect}, additional_properties: #{@additional_properties}>"
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,43 @@
1
+ # calendar_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CalendarApi
7
+ # Version number of conference data supported by the API client. Version 0
8
+ # assumes no support; version 1 enables creating and copying conference data.
9
+ class ConferenceDataVersion
10
+ CONFERENCE_DATA_VERSION = [
11
+ # TODO: Write general description for ENUM_0
12
+ ENUM_0 = 0,
13
+
14
+ # TODO: Write general description for ENUM_1
15
+ ENUM_1 = 1
16
+ ].freeze
17
+
18
+ def self.validate(value)
19
+ return false if value.nil?
20
+
21
+ CONFERENCE_DATA_VERSION.include?(value)
22
+ end
23
+
24
+ def self.from_value(value, default_value = ENUM_0)
25
+ return default_value if value.nil?
26
+
27
+ str = value.to_s.strip
28
+ if str.match?(/\A\d+\z/)
29
+ num = str.to_i
30
+ return num if CONFERENCE_DATA_VERSION.include?(num)
31
+
32
+ return default_value
33
+ end
34
+
35
+ case str.downcase
36
+ when 'enum_0' then ENUM_0
37
+ when 'enum_1' then ENUM_1
38
+ else
39
+ default_value
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,126 @@
1
+ # calendar_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CalendarApi
7
+ # Information about an individual conference entry point.
8
+ class ConferenceEntryPoint < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The type of conference entry point.
13
+ # @return [EntryPointType]
14
+ attr_accessor :entry_point_type
15
+
16
+ # The URI of the entry point. Maximum length is 1300 characters.
17
+ # @return [String]
18
+ attr_accessor :uri
19
+
20
+ # The label for the URI.
21
+ # @return [String]
22
+ attr_accessor :label
23
+
24
+ # The PIN to access the conference.
25
+ # @return [String]
26
+ attr_accessor :pin
27
+
28
+ # The meeting code to access the conference.
29
+ # @return [String]
30
+ attr_accessor :meeting_code
31
+
32
+ # The password to access the conference.
33
+ # @return [String]
34
+ attr_accessor :password
35
+
36
+ # A mapping from model property names to API property names.
37
+ def self.names
38
+ @_hash = {} if @_hash.nil?
39
+ @_hash['entry_point_type'] = 'entryPointType'
40
+ @_hash['uri'] = 'uri'
41
+ @_hash['label'] = 'label'
42
+ @_hash['pin'] = 'pin'
43
+ @_hash['meeting_code'] = 'meetingCode'
44
+ @_hash['password'] = 'password'
45
+ @_hash
46
+ end
47
+
48
+ # An array for optional fields
49
+ def self.optionals
50
+ %w[
51
+ entry_point_type
52
+ uri
53
+ label
54
+ pin
55
+ meeting_code
56
+ password
57
+ ]
58
+ end
59
+
60
+ # An array for nullable fields
61
+ def self.nullables
62
+ []
63
+ end
64
+
65
+ def initialize(entry_point_type: SKIP, uri: SKIP, label: SKIP, pin: SKIP,
66
+ meeting_code: SKIP, password: SKIP,
67
+ additional_properties: nil)
68
+ # Add additional model properties to the instance
69
+ additional_properties = {} if additional_properties.nil?
70
+
71
+ @entry_point_type = entry_point_type unless entry_point_type == SKIP
72
+ @uri = uri unless uri == SKIP
73
+ @label = label unless label == SKIP
74
+ @pin = pin unless pin == SKIP
75
+ @meeting_code = meeting_code unless meeting_code == SKIP
76
+ @password = password unless password == SKIP
77
+ @additional_properties = additional_properties
78
+ end
79
+
80
+ # Creates an instance of the object from a hash.
81
+ def self.from_hash(hash)
82
+ return nil unless hash
83
+
84
+ # Extract variables from the hash.
85
+ entry_point_type =
86
+ hash.key?('entryPointType') ? hash['entryPointType'] : SKIP
87
+ uri = hash.key?('uri') ? hash['uri'] : SKIP
88
+ label = hash.key?('label') ? hash['label'] : SKIP
89
+ pin = hash.key?('pin') ? hash['pin'] : SKIP
90
+ meeting_code = hash.key?('meetingCode') ? hash['meetingCode'] : SKIP
91
+ password = hash.key?('password') ? hash['password'] : SKIP
92
+
93
+ # Create a new hash for additional properties, removing known properties.
94
+ new_hash = hash.reject { |k, _| names.value?(k) }
95
+
96
+ additional_properties = APIHelper.get_additional_properties(
97
+ new_hash, proc { |value| value }
98
+ )
99
+
100
+ # Create object from extracted values.
101
+ ConferenceEntryPoint.new(entry_point_type: entry_point_type,
102
+ uri: uri,
103
+ label: label,
104
+ pin: pin,
105
+ meeting_code: meeting_code,
106
+ password: password,
107
+ additional_properties: additional_properties)
108
+ end
109
+
110
+ # Provides a human-readable string representation of the object.
111
+ def to_s
112
+ class_name = self.class.name.split('::').last
113
+ "<#{class_name} entry_point_type: #{@entry_point_type}, uri: #{@uri}, label: #{@label},"\
114
+ " pin: #{@pin}, meeting_code: #{@meeting_code}, password: #{@password},"\
115
+ " additional_properties: #{@additional_properties}>"
116
+ end
117
+
118
+ # Provides a debugging-friendly string with detailed object information.
119
+ def inspect
120
+ class_name = self.class.name.split('::').last
121
+ "<#{class_name} entry_point_type: #{@entry_point_type.inspect}, uri: #{@uri.inspect},"\
122
+ " label: #{@label.inspect}, pin: #{@pin.inspect}, meeting_code: #{@meeting_code.inspect},"\
123
+ " password: #{@password.inspect}, additional_properties: #{@additional_properties}>"
124
+ end
125
+ end
126
+ end
@@ -0,0 +1,40 @@
1
+ # calendar_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CalendarApi
7
+ # Status of the conference create request.
8
+ class ConferenceRequestStatusCode
9
+ CONFERENCE_REQUEST_STATUS_CODE = [
10
+ # TODO: Write general description for PENDING
11
+ PENDING = 'pending'.freeze,
12
+
13
+ # TODO: Write general description for SUCCESS
14
+ SUCCESS = 'success'.freeze,
15
+
16
+ # TODO: Write general description for FAILURE
17
+ FAILURE = 'failure'.freeze
18
+ ].freeze
19
+
20
+ def self.validate(value)
21
+ return false if value.nil?
22
+
23
+ CONFERENCE_REQUEST_STATUS_CODE.include?(value)
24
+ end
25
+
26
+ def self.from_value(value, default_value = PENDING)
27
+ return default_value if value.nil?
28
+
29
+ str = value.to_s.strip
30
+
31
+ case str.downcase
32
+ when 'pending' then PENDING
33
+ when 'success' then SUCCESS
34
+ when 'failure' then FAILURE
35
+ else
36
+ default_value
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,95 @@
1
+ # calendar_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CalendarApi
7
+ # Conference solution information, such as Google Meet.
8
+ class ConferenceSolution < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Identifies a conference solution type.
13
+ # @return [ConferenceSolutionKey]
14
+ attr_accessor :key
15
+
16
+ # User-visible name of the conference solution.
17
+ # @return [String]
18
+ attr_accessor :name
19
+
20
+ # User-visible icon for this solution.
21
+ # @return [String]
22
+ attr_accessor :icon_uri
23
+
24
+ # A mapping from model property names to API property names.
25
+ def self.names
26
+ @_hash = {} if @_hash.nil?
27
+ @_hash['key'] = 'key'
28
+ @_hash['name'] = 'name'
29
+ @_hash['icon_uri'] = 'iconUri'
30
+ @_hash
31
+ end
32
+
33
+ # An array for optional fields
34
+ def self.optionals
35
+ %w[
36
+ key
37
+ name
38
+ icon_uri
39
+ ]
40
+ end
41
+
42
+ # An array for nullable fields
43
+ def self.nullables
44
+ []
45
+ end
46
+
47
+ def initialize(key: SKIP, name: SKIP, icon_uri: SKIP,
48
+ additional_properties: nil)
49
+ # Add additional model properties to the instance
50
+ additional_properties = {} if additional_properties.nil?
51
+
52
+ @key = key unless key == SKIP
53
+ @name = name unless name == SKIP
54
+ @icon_uri = icon_uri unless icon_uri == SKIP
55
+ @additional_properties = additional_properties
56
+ end
57
+
58
+ # Creates an instance of the object from a hash.
59
+ def self.from_hash(hash)
60
+ return nil unless hash
61
+
62
+ # Extract variables from the hash.
63
+ key = ConferenceSolutionKey.from_hash(hash['key']) if hash['key']
64
+ name = hash.key?('name') ? hash['name'] : SKIP
65
+ icon_uri = hash.key?('iconUri') ? hash['iconUri'] : SKIP
66
+
67
+ # Create a new hash for additional properties, removing known properties.
68
+ new_hash = hash.reject { |k, _| names.value?(k) }
69
+
70
+ additional_properties = APIHelper.get_additional_properties(
71
+ new_hash, proc { |value| value }
72
+ )
73
+
74
+ # Create object from extracted values.
75
+ ConferenceSolution.new(key: key,
76
+ name: name,
77
+ icon_uri: icon_uri,
78
+ additional_properties: additional_properties)
79
+ end
80
+
81
+ # Provides a human-readable string representation of the object.
82
+ def to_s
83
+ class_name = self.class.name.split('::').last
84
+ "<#{class_name} key: #{@key}, name: #{@name}, icon_uri: #{@icon_uri},"\
85
+ " additional_properties: #{@additional_properties}>"
86
+ end
87
+
88
+ # Provides a debugging-friendly string with detailed object information.
89
+ def inspect
90
+ class_name = self.class.name.split('::').last
91
+ "<#{class_name} key: #{@key.inspect}, name: #{@name.inspect}, icon_uri:"\
92
+ " #{@icon_uri.inspect}, additional_properties: #{@additional_properties}>"
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,74 @@
1
+ # calendar_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CalendarApi
7
+ # Identifies a conference solution type.
8
+ class ConferenceSolutionKey < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The conference solution type (e.g. "hangoutsMeet", "eventHangout").
13
+ # @return [String]
14
+ attr_accessor :type
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['type'] = 'type'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ %w[
26
+ type
27
+ ]
28
+ end
29
+
30
+ # An array for nullable fields
31
+ def self.nullables
32
+ []
33
+ end
34
+
35
+ def initialize(type: SKIP, additional_properties: nil)
36
+ # Add additional model properties to the instance
37
+ additional_properties = {} if additional_properties.nil?
38
+
39
+ @type = type unless type == SKIP
40
+ @additional_properties = additional_properties
41
+ end
42
+
43
+ # Creates an instance of the object from a hash.
44
+ def self.from_hash(hash)
45
+ return nil unless hash
46
+
47
+ # Extract variables from the hash.
48
+ type = hash.key?('type') ? hash['type'] : SKIP
49
+
50
+ # Create a new hash for additional properties, removing known properties.
51
+ new_hash = hash.reject { |k, _| names.value?(k) }
52
+
53
+ additional_properties = APIHelper.get_additional_properties(
54
+ new_hash, proc { |value| value }
55
+ )
56
+
57
+ # Create object from extracted values.
58
+ ConferenceSolutionKey.new(type: type,
59
+ additional_properties: additional_properties)
60
+ end
61
+
62
+ # Provides a human-readable string representation of the object.
63
+ def to_s
64
+ class_name = self.class.name.split('::').last
65
+ "<#{class_name} type: #{@type}, additional_properties: #{@additional_properties}>"
66
+ end
67
+
68
+ # Provides a debugging-friendly string with detailed object information.
69
+ def inspect
70
+ class_name = self.class.name.split('::').last
71
+ "<#{class_name} type: #{@type.inspect}, additional_properties: #{@additional_properties}>"
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,40 @@
1
+ # calendar_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CalendarApi
7
+ # ConferenceSolutionType object.
8
+ class ConferenceSolutionType
9
+ CONFERENCE_SOLUTION_TYPE = [
10
+ # TODO: Write general description for EVENTHANGOUT
11
+ EVENTHANGOUT = 'eventHangout'.freeze,
12
+
13
+ # TODO: Write general description for EVENTNAMEDHANGOUT
14
+ EVENTNAMEDHANGOUT = 'eventNamedHangout'.freeze,
15
+
16
+ # TODO: Write general description for HANGOUTSMEET
17
+ HANGOUTSMEET = 'hangoutsMeet'.freeze
18
+ ].freeze
19
+
20
+ def self.validate(value)
21
+ return false if value.nil?
22
+
23
+ CONFERENCE_SOLUTION_TYPE.include?(value)
24
+ end
25
+
26
+ def self.from_value(value, default_value = EVENTHANGOUT)
27
+ return default_value if value.nil?
28
+
29
+ str = value.to_s.strip
30
+
31
+ case str.downcase
32
+ when 'eventhangout' then EVENTHANGOUT
33
+ when 'eventnamedhangout' then EVENTNAMEDHANGOUT
34
+ when 'hangoutsmeet' then HANGOUTSMEET
35
+ else
36
+ default_value
37
+ end
38
+ end
39
+ end
40
+ end