comet_backup_ruby_sdk 1.0.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/Gemfile.lock +2 -2
  4. data/LICENSE +1 -1
  5. data/comet_backup_ruby_sdk.gemspec +1 -1
  6. data/lib/comet/api_response_error.rb +1 -1
  7. data/lib/comet/comet_server.rb +602 -291
  8. data/lib/comet/definitions.rb +48 -4
  9. data/lib/comet/models/add_bucket_response_message.rb +7 -7
  10. data/lib/comet/models/admin_account_properties_response.rb +4 -4
  11. data/lib/comet/models/admin_email_options.rb +5 -5
  12. data/lib/comet/models/admin_resource_response.rb +6 -6
  13. data/lib/comet/models/admin_security_options.rb +8 -8
  14. data/lib/comet/models/admin_u2fregistration.rb +5 -5
  15. data/lib/comet/models/admin_user_permissions.rb +3 -3
  16. data/lib/comet/models/available_download.rb +5 -5
  17. data/lib/comet/models/azure_destination_location.rb +8 -8
  18. data/lib/comet/models/b2destination_location.rb +8 -8
  19. data/lib/comet/models/b2storage_extra_info.rb +3 -3
  20. data/lib/comet/models/b2transaction_totals.rb +6 -6
  21. data/lib/comet/models/b2virtual_storage_role_settings.rb +6 -6
  22. data/lib/comet/models/backup_job_advanced_options.rb +5 -5
  23. data/lib/comet/models/backup_job_detail.rb +54 -21
  24. data/lib/comet/models/backup_job_progress.rb +8 -8
  25. data/lib/comet/models/backup_rule_config.rb +28 -12
  26. data/lib/comet/models/backup_rule_event_triggers.rb +3 -3
  27. data/lib/comet/models/branding_options.rb +37 -28
  28. data/lib/comet/models/branding_properties.rb +33 -24
  29. data/lib/comet/models/browse_disk_drives_response.rb +5 -5
  30. data/lib/comet/models/browse_edbresponse.rb +5 -5
  31. data/lib/comet/models/browse_hvresponse.rb +5 -5
  32. data/lib/comet/models/browse_office_365objects_response.rb +99 -0
  33. data/lib/comet/models/browse_sqlserver_response.rb +100 -0
  34. data/lib/comet/models/browse_vssresponse.rb +5 -5
  35. data/lib/comet/models/bucket_properties.rb +7 -7
  36. data/lib/comet/models/bucket_usage_info.rb +4 -4
  37. data/lib/comet/models/comet_apiresponse_message.rb +5 -5
  38. data/lib/comet/models/comet_destination_location.rb +6 -6
  39. data/lib/comet/models/constellation_check_report.rb +5 -5
  40. data/lib/comet/models/constellation_stats.rb +7 -7
  41. data/lib/comet/models/constellation_status_apiresponse.rb +5 -5
  42. data/lib/comet/models/content_measurement.rb +5 -5
  43. data/lib/comet/models/content_measurement_component.rb +5 -5
  44. data/lib/comet/models/create_group_policy_response.rb +6 -6
  45. data/lib/comet/models/custom_remote_bucket_settings.rb +75 -0
  46. data/lib/comet/models/default_email_report_policy.rb +3 -3
  47. data/lib/comet/models/destination_config.rb +66 -44
  48. data/lib/comet/models/destination_location.rb +41 -35
  49. data/lib/comet/models/destination_statistics.rb +6 -6
  50. data/lib/comet/models/device_config.rb +4 -4
  51. data/lib/comet/models/disk_drive.rb +14 -14
  52. data/lib/comet/models/dispatcher_admin_sources_response.rb +6 -6
  53. data/lib/comet/models/dispatcher_stored_objects_response.rb +5 -5
  54. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +5 -5
  55. data/lib/comet/models/edbfile_info.rb +6 -6
  56. data/lib/comet/models/email_options.rb +10 -10
  57. data/lib/comet/models/email_report_config.rb +4 -4
  58. data/lib/comet/models/email_report_generated_preview.rb +8 -8
  59. data/lib/comet/models/external_ldapauthentication_source_settings.rb +40 -7
  60. data/lib/comet/models/extra_file_exclusion.rb +5 -5
  61. data/lib/comet/models/ftpdestination_location.rb +10 -10
  62. data/lib/comet/models/get_group_policy_response.rb +6 -6
  63. data/lib/comet/models/get_profile_and_hash_response_message.rb +6 -6
  64. data/lib/comet/models/get_profile_hash_response_message.rb +6 -6
  65. data/lib/comet/models/group_policy.rb +5 -5
  66. data/lib/comet/models/hyper_vmachine_info.rb +5 -5
  67. data/lib/comet/models/install_creds.rb +6 -6
  68. data/lib/comet/models/install_token.rb +8 -8
  69. data/lib/comet/models/install_token_response.rb +5 -5
  70. data/lib/comet/models/job_entry.rb +6 -6
  71. data/lib/comet/models/live_user_connection.rb +9 -9
  72. data/lib/comet/models/local_destination_location.rb +7 -7
  73. data/lib/comet/models/mac_oscode_sign_properties.rb +9 -9
  74. data/lib/comet/models/mongo_dbconnection.rb +16 -16
  75. data/lib/comet/models/mssqlconnection.rb +120 -0
  76. data/lib/comet/models/my_sqlconnection.rb +102 -0
  77. data/lib/comet/models/new_bucket_detail.rb +5 -5
  78. data/lib/comet/models/news_entry.rb +6 -6
  79. data/lib/comet/models/office_365connection.rb +123 -0
  80. data/lib/comet/models/office_365credential.rb +111 -0
  81. data/lib/comet/models/office_365custom_setting.rb +132 -0
  82. data/lib/comet/models/office_365object_info.rb +118 -0
  83. data/lib/comet/models/organization.rb +11 -5
  84. data/lib/comet/models/organization_response.rb +6 -6
  85. data/lib/comet/models/osinfo.rb +6 -6
  86. data/lib/comet/models/partition.rb +14 -14
  87. data/lib/comet/models/private_branding_properties.rb +27 -18
  88. data/lib/comet/models/protected_item_engine_type_policy.rb +4 -4
  89. data/lib/comet/models/public_branding_properties.rb +9 -9
  90. data/lib/comet/models/register_office_application_begin_response.rb +93 -0
  91. data/lib/comet/models/register_office_application_check_response.rb +100 -0
  92. data/lib/comet/models/remote_server_address.rb +18 -8
  93. data/lib/comet/models/remote_storage_option.rb +19 -9
  94. data/lib/comet/models/replicator_state_apiresponse.rb +15 -15
  95. data/lib/comet/models/request_storage_vault_response_message.rb +6 -6
  96. data/lib/comet/models/restore_job_advanced_options.rb +13 -7
  97. data/lib/comet/models/retention_policy.rb +4 -4
  98. data/lib/comet/models/retention_range.rb +11 -11
  99. data/lib/comet/models/s3destination_location.rb +8 -8
  100. data/lib/comet/models/schedule_config.rb +6 -6
  101. data/lib/comet/models/search_clause.rb +7 -7
  102. data/lib/comet/models/self_backup_statistics.rb +108 -0
  103. data/lib/comet/models/server_config_options_branding_fragment.rb +3 -3
  104. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +3 -3
  105. data/lib/comet/models/server_meta_version_info.rb +33 -18
  106. data/lib/comet/models/session_key_regenerated_response.rb +7 -7
  107. data/lib/comet/models/sftpdestination_location.rb +10 -10
  108. data/lib/comet/models/size_measurement.rb +6 -6
  109. data/lib/comet/models/software_build_role_options.rb +3 -3
  110. data/lib/comet/models/software_update_news_response.rb +7 -7
  111. data/lib/comet/models/source_basic_info.rb +5 -5
  112. data/lib/comet/models/source_config.rb +27 -11
  113. data/lib/comet/models/source_statistics.rb +3 -3
  114. data/lib/comet/models/spanned_destination_location.rb +9 -3
  115. data/lib/comet/models/spanned_storage_extra_info.rb +3 -3
  116. data/lib/comet/models/sshconnection.rb +9 -9
  117. data/lib/comet/models/stat_result.rb +7 -7
  118. data/lib/comet/models/storage_free_space_info.rb +5 -5
  119. data/lib/comet/models/storage_vault_provider_policy.rb +4 -4
  120. data/lib/comet/models/stored_object.rb +96 -11
  121. data/lib/comet/models/streamable_event.rb +8 -6
  122. data/lib/comet/models/swift_destination_location.rb +16 -16
  123. data/lib/comet/models/test_response.rb +5 -5
  124. data/lib/comet/models/totp_regenerated_response.rb +8 -8
  125. data/lib/comet/models/u2fregister_request.rb +5 -5
  126. data/lib/comet/models/u2fregistered_key.rb +6 -6
  127. data/lib/comet/models/u2fregistration_challenge_response.rb +7 -7
  128. data/lib/comet/models/u2fsign_request.rb +6 -6
  129. data/lib/comet/models/u2fsign_response.rb +7 -7
  130. data/lib/comet/models/uninstall_config.rb +3 -3
  131. data/lib/comet/models/update_campaign_device_status.rb +4 -4
  132. data/lib/comet/models/update_campaign_options.rb +3 -3
  133. data/lib/comet/models/update_campaign_properties.rb +5 -5
  134. data/lib/comet/models/update_campaign_status.rb +5 -5
  135. data/lib/comet/models/update_campaign_status_device_entry.rb +6 -6
  136. data/lib/comet/models/user_custom_email_settings.rb +3 -3
  137. data/lib/comet/models/user_on_server.rb +5 -5
  138. data/lib/comet/models/user_policy.rb +7 -7
  139. data/lib/comet/models/user_profile_config.rb +19 -19
  140. data/lib/comet/models/user_profile_fragment.rb +4 -4
  141. data/lib/comet/models/vault_snapshot.rb +12 -6
  142. data/lib/comet/models/vsscomponent.rb +6 -6
  143. data/lib/comet/models/vsswriter_info.rb +4 -4
  144. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +6 -6
  145. data/lib/comet/models/web_interface_branding_properties.rb +7 -7
  146. data/lib/comet/models/webhook_option.rb +5 -5
  147. data/lib/comet/models/win_smbauth.rb +7 -7
  148. data/lib/comet/models/windows_code_sign_properties.rb +12 -12
  149. data/lib/comet_backup_ruby_sdk.rb +13 -1
  150. metadata +14 -2
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby --enable-frozen-string-literal
2
2
  #
3
- # Copyright (c) 2020-2020 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2021 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -98,53 +98,53 @@ module Comet
98
98
 
99
99
  # @param [String] json_string The complete object in JSON format
100
100
  def from_json(json_string)
101
- raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
101
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
102
102
 
103
103
  from_hash(JSON.parse(json_string))
104
104
  end
105
105
 
106
106
  # @param [Hash] obj The complete object as a Ruby hash
107
107
  def from_hash(obj)
108
- raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
108
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
109
109
 
110
110
  obj.each do |k, v|
111
111
  case k
112
112
  when 'Server'
113
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
113
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
114
114
 
115
115
  @server = v
116
116
  when 'Port'
117
- raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
117
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
118
118
 
119
119
  @port = v
120
120
  when 'Username'
121
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
121
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
122
122
 
123
123
  @username = v
124
124
  when 'Password'
125
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
125
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
126
126
 
127
127
  @password = v
128
128
  when 'AuthenticationDB'
129
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
129
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
130
130
 
131
131
  @authentication_db = v
132
132
  when 'MongoShellPath'
133
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
133
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
134
134
 
135
135
  @mongo_shell_path = v
136
136
  when 'MongodumpPath'
137
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
137
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
138
138
 
139
139
  @mongodump_path = v
140
140
  when 'ReadPreference'
141
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
141
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
142
142
 
143
143
  @read_preference = v
144
144
  when 'UseReplica'
145
145
  @use_replica = v
146
146
  when 'ReplicaName'
147
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
147
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
148
148
 
149
149
  @replica_name = v
150
150
  when 'ReplicaMembers'
@@ -153,7 +153,7 @@ module Comet
153
153
  else
154
154
  @replica_members = Array.new(v.length)
155
155
  v.each_with_index do |v1, i1|
156
- raise TypeError "'v1' expected String, got #{v1.class}" unless v1.is_a? String
156
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
157
157
 
158
158
  @replica_members[i1] = v1
159
159
  end
@@ -161,15 +161,15 @@ module Comet
161
161
  when 'UseSSL'
162
162
  @use_ssl = v
163
163
  when 'ClientSSLPEMPath'
164
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
164
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
165
165
 
166
166
  @client_sslpempath = v
167
167
  when 'ServerSSLPEMPath'
168
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
168
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
169
169
 
170
170
  @server_sslpempath = v
171
171
  when 'SSLClientKeyPassword'
172
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
172
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
173
173
 
174
174
  @sslclient_key_password = v
175
175
  when 'AllowInvalidCertificate'
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2021 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # MSSQLConnection is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class MSSQLConnection
16
+
17
+ # @type [String] type
18
+ attr_accessor :type
19
+
20
+ # @type [String] username
21
+ attr_accessor :username
22
+
23
+ # @type [String] password
24
+ attr_accessor :password
25
+
26
+ # @type [String] hostname
27
+ attr_accessor :hostname
28
+
29
+ # @type [String] instance_name
30
+ attr_accessor :instance_name
31
+
32
+ # @type [String] method
33
+ attr_accessor :method
34
+
35
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
36
+ attr_accessor :unknown_json_fields
37
+
38
+ def initialize
39
+ clear
40
+ end
41
+
42
+ def clear
43
+ @type = ''
44
+ @username = ''
45
+ @password = ''
46
+ @hostname = ''
47
+ @instance_name = ''
48
+ @method = ''
49
+ @unknown_json_fields = {}
50
+ end
51
+
52
+ # @param [String] json_string The complete object in JSON format
53
+ def from_json(json_string)
54
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
55
+
56
+ from_hash(JSON.parse(json_string))
57
+ end
58
+
59
+ # @param [Hash] obj The complete object as a Ruby hash
60
+ def from_hash(obj)
61
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
62
+
63
+ obj.each do |k, v|
64
+ case k
65
+ when 'Type'
66
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
67
+
68
+ @type = v
69
+ when 'Username'
70
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
71
+
72
+ @username = v
73
+ when 'Password'
74
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
75
+
76
+ @password = v
77
+ when 'Hostname'
78
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
79
+
80
+ @hostname = v
81
+ when 'InstanceName'
82
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
83
+
84
+ @instance_name = v
85
+ when 'Method'
86
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
87
+
88
+ @method = v
89
+ else
90
+ @unknown_json_fields[k] = v
91
+ end
92
+ end
93
+ end
94
+
95
+ # @return [Hash] The complete object as a Ruby hash
96
+ def to_hash
97
+ ret = {}
98
+ ret['Type'] = @type
99
+ ret['Username'] = @username
100
+ ret['Password'] = @password
101
+ ret['Hostname'] = @hostname
102
+ ret['InstanceName'] = @instance_name
103
+ ret['Method'] = @method
104
+ @unknown_json_fields.each do |k, v|
105
+ ret[k] = v
106
+ end
107
+ ret
108
+ end
109
+
110
+ # @return [Hash] The complete object as a Ruby hash
111
+ def to_h
112
+ to_hash
113
+ end
114
+
115
+ # @return [String] The complete object as a JSON string
116
+ def to_json(options = {})
117
+ to_hash.to_json(options)
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2021 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # MySQLConnection is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class MySQLConnection
16
+
17
+ # @type [String] host
18
+ attr_accessor :host
19
+
20
+ # @type [String] port
21
+ attr_accessor :port
22
+
23
+ # @type [String] username
24
+ attr_accessor :username
25
+
26
+ # @type [String] password
27
+ attr_accessor :password
28
+
29
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
30
+ attr_accessor :unknown_json_fields
31
+
32
+ def initialize
33
+ clear
34
+ end
35
+
36
+ def clear
37
+ @host = ''
38
+ @port = ''
39
+ @username = ''
40
+ @password = ''
41
+ @unknown_json_fields = {}
42
+ end
43
+
44
+ # @param [String] json_string The complete object in JSON format
45
+ def from_json(json_string)
46
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
47
+
48
+ from_hash(JSON.parse(json_string))
49
+ end
50
+
51
+ # @param [Hash] obj The complete object as a Ruby hash
52
+ def from_hash(obj)
53
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
54
+
55
+ obj.each do |k, v|
56
+ case k
57
+ when 'Host'
58
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
59
+
60
+ @host = v
61
+ when 'Port'
62
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
63
+
64
+ @port = v
65
+ when 'Username'
66
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
67
+
68
+ @username = v
69
+ when 'Password'
70
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
71
+
72
+ @password = v
73
+ else
74
+ @unknown_json_fields[k] = v
75
+ end
76
+ end
77
+ end
78
+
79
+ # @return [Hash] The complete object as a Ruby hash
80
+ def to_hash
81
+ ret = {}
82
+ ret['Host'] = @host
83
+ ret['Port'] = @port
84
+ ret['Username'] = @username
85
+ ret['Password'] = @password
86
+ @unknown_json_fields.each do |k, v|
87
+ ret[k] = v
88
+ end
89
+ ret
90
+ end
91
+
92
+ # @return [Hash] The complete object as a Ruby hash
93
+ def to_h
94
+ to_hash
95
+ end
96
+
97
+ # @return [String] The complete object as a JSON string
98
+ def to_json(options = {})
99
+ to_hash.to_json(options)
100
+ end
101
+ end
102
+ end
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby --enable-frozen-string-literal
2
2
  #
3
- # Copyright (c) 2020-2020 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2021 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -35,23 +35,23 @@ module Comet
35
35
 
36
36
  # @param [String] json_string The complete object in JSON format
37
37
  def from_json(json_string)
38
- raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
38
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
39
39
 
40
40
  from_hash(JSON.parse(json_string))
41
41
  end
42
42
 
43
43
  # @param [Hash] obj The complete object as a Ruby hash
44
44
  def from_hash(obj)
45
- raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
45
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
46
46
 
47
47
  obj.each do |k, v|
48
48
  case k
49
49
  when 'NewBucketID'
50
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
50
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
51
51
 
52
52
  @new_bucket_id = v
53
53
  when 'NewBucketKey'
54
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
54
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
55
55
 
56
56
  @new_bucket_key = v
57
57
  else
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby --enable-frozen-string-literal
2
2
  #
3
- # Copyright (c) 2020-2020 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2021 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -39,27 +39,27 @@ module Comet
39
39
 
40
40
  # @param [String] json_string The complete object in JSON format
41
41
  def from_json(json_string)
42
- raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
42
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
43
43
 
44
44
  from_hash(JSON.parse(json_string))
45
45
  end
46
46
 
47
47
  # @param [Hash] obj The complete object as a Ruby hash
48
48
  def from_hash(obj)
49
- raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
49
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
50
50
 
51
51
  obj.each do |k, v|
52
52
  case k
53
53
  when 'OrganizationID'
54
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
54
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
55
55
 
56
56
  @organization_id = v
57
57
  when 'DateTime'
58
- raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
58
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
59
59
 
60
60
  @date_time = v
61
61
  when 'TextContent'
62
- raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
62
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
63
63
 
64
64
  @text_content = v
65
65
  else
@@ -0,0 +1,123 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2021 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # Office365Connection is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class Office365Connection
16
+
17
+ # @type [String] feature_flag
18
+ attr_accessor :feature_flag
19
+
20
+ # @type [Comet::Office365Credential] credential
21
+ attr_accessor :credential
22
+
23
+ # @type [Comet::Office365CustomSetting] custom_setting
24
+ attr_accessor :custom_setting
25
+
26
+ # @type [Array<String>] mailbox_unique_members
27
+ attr_accessor :mailbox_unique_members
28
+
29
+ # @type [Array<String>] site_unique_members
30
+ attr_accessor :site_unique_members
31
+
32
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
33
+ attr_accessor :unknown_json_fields
34
+
35
+ def initialize
36
+ clear
37
+ end
38
+
39
+ def clear
40
+ @feature_flag = ''
41
+ @credential = Comet::Office365Credential.new
42
+ @custom_setting = Comet::Office365CustomSetting.new
43
+ @mailbox_unique_members = []
44
+ @site_unique_members = []
45
+ @unknown_json_fields = {}
46
+ end
47
+
48
+ # @param [String] json_string The complete object in JSON format
49
+ def from_json(json_string)
50
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
51
+
52
+ from_hash(JSON.parse(json_string))
53
+ end
54
+
55
+ # @param [Hash] obj The complete object as a Ruby hash
56
+ def from_hash(obj)
57
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
58
+
59
+ obj.each do |k, v|
60
+ case k
61
+ when 'FeatureFlag'
62
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
63
+
64
+ @feature_flag = v
65
+ when 'Credential'
66
+ @credential = Comet::Office365Credential.new
67
+ @credential.from_hash(v)
68
+ when 'CustomSetting'
69
+ @custom_setting = Comet::Office365CustomSetting.new
70
+ @custom_setting.from_hash(v)
71
+ when 'MailboxUniqueMembers'
72
+ if v.nil?
73
+ @mailbox_unique_members = []
74
+ else
75
+ @mailbox_unique_members = Array.new(v.length)
76
+ v.each_with_index do |v1, i1|
77
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
78
+
79
+ @mailbox_unique_members[i1] = v1
80
+ end
81
+ end
82
+ when 'SiteUniqueMembers'
83
+ if v.nil?
84
+ @site_unique_members = []
85
+ else
86
+ @site_unique_members = Array.new(v.length)
87
+ v.each_with_index do |v1, i1|
88
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
89
+
90
+ @site_unique_members[i1] = v1
91
+ end
92
+ end
93
+ else
94
+ @unknown_json_fields[k] = v
95
+ end
96
+ end
97
+ end
98
+
99
+ # @return [Hash] The complete object as a Ruby hash
100
+ def to_hash
101
+ ret = {}
102
+ ret['FeatureFlag'] = @feature_flag
103
+ ret['Credential'] = @credential
104
+ ret['CustomSetting'] = @custom_setting
105
+ ret['MailboxUniqueMembers'] = @mailbox_unique_members
106
+ ret['SiteUniqueMembers'] = @site_unique_members
107
+ @unknown_json_fields.each do |k, v|
108
+ ret[k] = v
109
+ end
110
+ ret
111
+ end
112
+
113
+ # @return [Hash] The complete object as a Ruby hash
114
+ def to_h
115
+ to_hash
116
+ end
117
+
118
+ # @return [String] The complete object as a JSON string
119
+ def to_json(options = {})
120
+ to_hash.to_json(options)
121
+ end
122
+ end
123
+ end