comet_backup_ruby_sdk 1.3.0 → 1.7.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 (158) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -0
  3. data/CHANGELOG.md +42 -0
  4. data/Gemfile +0 -0
  5. data/Gemfile.lock +2 -2
  6. data/LICENSE +1 -1
  7. data/README.md +0 -0
  8. data/RELEASING.md +6 -4
  9. data/Rakefile +0 -0
  10. data/comet_backup_ruby_sdk.gemspec +1 -1
  11. data/lib/comet/api_response_error.rb +1 -1
  12. data/lib/comet/comet_server.rb +231 -13
  13. data/lib/comet/definitions.rb +67 -7
  14. data/lib/comet/models/add_bucket_response_message.rb +1 -1
  15. data/lib/comet/models/admin_account_properties_response.rb +1 -1
  16. data/lib/comet/models/admin_email_options.rb +1 -1
  17. data/lib/comet/models/admin_resource_response.rb +1 -1
  18. data/lib/comet/models/admin_security_options.rb +1 -1
  19. data/lib/comet/models/admin_u2fregistration.rb +1 -1
  20. data/lib/comet/models/admin_user_permissions.rb +1 -1
  21. data/lib/comet/models/available_download.rb +1 -1
  22. data/lib/comet/models/azure_destination_location.rb +1 -1
  23. data/lib/comet/models/b2destination_location.rb +1 -1
  24. data/lib/comet/models/b2storage_extra_info.rb +1 -1
  25. data/lib/comet/models/b2transaction_totals.rb +1 -1
  26. data/lib/comet/models/b2virtual_storage_role_settings.rb +1 -1
  27. data/lib/comet/models/backup_job_advanced_options.rb +1 -1
  28. data/lib/comet/models/backup_job_detail.rb +34 -1
  29. data/lib/comet/models/backup_job_progress.rb +1 -1
  30. data/lib/comet/models/backup_rule_config.rb +1 -1
  31. data/lib/comet/models/backup_rule_event_triggers.rb +1 -1
  32. data/lib/comet/models/branding_options.rb +10 -1
  33. data/lib/comet/models/branding_properties.rb +10 -1
  34. data/lib/comet/models/browse_disk_drives_response.rb +1 -1
  35. data/lib/comet/models/browse_edbresponse.rb +1 -1
  36. data/lib/comet/models/browse_hvresponse.rb +1 -1
  37. data/lib/comet/models/browse_office_365objects_response.rb +99 -0
  38. data/lib/comet/models/browse_sqlserver_response.rb +100 -0
  39. data/lib/comet/models/browse_vssresponse.rb +1 -1
  40. data/lib/comet/models/bucket_properties.rb +1 -1
  41. data/lib/comet/models/bucket_usage_info.rb +1 -1
  42. data/lib/comet/models/comet_apiresponse_message.rb +1 -1
  43. data/lib/comet/models/comet_destination_location.rb +1 -1
  44. data/lib/comet/models/constellation_check_report.rb +1 -1
  45. data/lib/comet/models/constellation_stats.rb +1 -1
  46. data/lib/comet/models/constellation_status_apiresponse.rb +1 -1
  47. data/lib/comet/models/content_measurement.rb +1 -1
  48. data/lib/comet/models/content_measurement_component.rb +1 -1
  49. data/lib/comet/models/create_group_policy_response.rb +1 -1
  50. data/lib/comet/models/custom_remote_bucket_settings.rb +75 -0
  51. data/lib/comet/models/default_email_report_policy.rb +1 -1
  52. data/lib/comet/models/default_source_with_osrestriction.rb +83 -0
  53. data/lib/comet/models/destination_config.rb +7 -1
  54. data/lib/comet/models/destination_location.rb +7 -1
  55. data/lib/comet/models/destination_statistics.rb +1 -1
  56. data/lib/comet/models/device_config.rb +12 -1
  57. data/lib/comet/models/disk_drive.rb +1 -1
  58. data/lib/comet/models/dispatcher_admin_sources_response.rb +1 -1
  59. data/lib/comet/models/dispatcher_stored_objects_response.rb +1 -1
  60. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +1 -1
  61. data/lib/comet/models/edbfile_info.rb +1 -1
  62. data/lib/comet/models/email_options.rb +1 -1
  63. data/lib/comet/models/email_report_config.rb +1 -1
  64. data/lib/comet/models/email_report_generated_preview.rb +1 -1
  65. data/lib/comet/models/external_ldapauthentication_source_settings.rb +34 -1
  66. data/lib/comet/models/extra_file_exclusion.rb +1 -1
  67. data/lib/comet/models/ftpdestination_location.rb +1 -1
  68. data/lib/comet/models/get_group_policy_response.rb +1 -1
  69. data/lib/comet/models/get_profile_and_hash_response_message.rb +1 -1
  70. data/lib/comet/models/get_profile_hash_response_message.rb +1 -1
  71. data/lib/comet/models/group_policy.rb +1 -1
  72. data/lib/comet/models/hyper_vmachine_info.rb +1 -1
  73. data/lib/comet/models/install_creds.rb +1 -1
  74. data/lib/comet/models/install_token.rb +1 -1
  75. data/lib/comet/models/install_token_response.rb +1 -1
  76. data/lib/comet/models/job_entry.rb +1 -1
  77. data/lib/comet/models/live_user_connection.rb +12 -1
  78. data/lib/comet/models/local_destination_location.rb +1 -1
  79. data/lib/comet/models/mac_oscode_sign_properties.rb +1 -1
  80. data/lib/comet/models/mongo_dbconnection.rb +1 -1
  81. data/lib/comet/models/mssqlconnection.rb +120 -0
  82. data/lib/comet/models/my_sqlconnection.rb +102 -0
  83. data/lib/comet/models/new_bucket_detail.rb +1 -1
  84. data/lib/comet/models/news_entry.rb +1 -1
  85. data/lib/comet/models/office_365connection.rb +123 -0
  86. data/lib/comet/models/office_365credential.rb +111 -0
  87. data/lib/comet/models/office_365custom_setting.rb +132 -0
  88. data/lib/comet/models/office_365object_info.rb +118 -0
  89. data/lib/comet/models/organization.rb +7 -1
  90. data/lib/comet/models/organization_response.rb +1 -1
  91. data/lib/comet/models/osinfo.rb +1 -1
  92. data/lib/comet/models/partition.rb +1 -1
  93. data/lib/comet/models/private_branding_properties.rb +10 -1
  94. data/lib/comet/models/protected_item_engine_type_policy.rb +1 -1
  95. data/lib/comet/models/public_branding_properties.rb +1 -1
  96. data/lib/comet/models/register_office_application_begin_response.rb +93 -0
  97. data/lib/comet/models/register_office_application_check_response.rb +100 -0
  98. data/lib/comet/models/remote_server_address.rb +11 -1
  99. data/lib/comet/models/remote_storage_option.rb +11 -1
  100. data/lib/comet/models/replicator_state_apiresponse.rb +1 -1
  101. data/lib/comet/models/request_storage_vault_response_message.rb +1 -1
  102. data/lib/comet/models/restore_job_advanced_options.rb +17 -1
  103. data/lib/comet/models/retention_policy.rb +1 -1
  104. data/lib/comet/models/retention_range.rb +1 -1
  105. data/lib/comet/models/s3destination_location.rb +1 -1
  106. data/lib/comet/models/schedule_config.rb +1 -1
  107. data/lib/comet/models/search_clause.rb +1 -1
  108. data/lib/comet/models/self_backup_statistics.rb +108 -0
  109. data/lib/comet/models/server_config_options_branding_fragment.rb +1 -1
  110. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +1 -1
  111. data/lib/comet/models/server_meta_branding_properties.rb +135 -0
  112. data/lib/comet/models/server_meta_version_info.rb +16 -1
  113. data/lib/comet/models/session_key_regenerated_response.rb +1 -1
  114. data/lib/comet/models/sftpdestination_location.rb +1 -1
  115. data/lib/comet/models/size_measurement.rb +1 -1
  116. data/lib/comet/models/software_build_role_options.rb +1 -1
  117. data/lib/comet/models/software_update_news_response.rb +1 -1
  118. data/lib/comet/models/source_basic_info.rb +1 -1
  119. data/lib/comet/models/source_config.rb +1 -1
  120. data/lib/comet/models/source_include_pattern.rb +84 -0
  121. data/lib/comet/models/source_statistics.rb +9 -1
  122. data/lib/comet/models/spanned_destination_location.rb +7 -1
  123. data/lib/comet/models/spanned_storage_extra_info.rb +1 -1
  124. data/lib/comet/models/sshconnection.rb +1 -1
  125. data/lib/comet/models/stat_result.rb +1 -1
  126. data/lib/comet/models/storage_free_space_info.rb +1 -1
  127. data/lib/comet/models/storage_vault_provider_policy.rb +1 -1
  128. data/lib/comet/models/stored_object.rb +86 -1
  129. data/lib/comet/models/streamable_event.rb +4 -2
  130. data/lib/comet/models/swift_destination_location.rb +1 -1
  131. data/lib/comet/models/test_response.rb +1 -1
  132. data/lib/comet/models/totp_regenerated_response.rb +1 -1
  133. data/lib/comet/models/u2fregister_request.rb +1 -1
  134. data/lib/comet/models/u2fregistered_key.rb +1 -1
  135. data/lib/comet/models/u2fregistration_challenge_response.rb +1 -1
  136. data/lib/comet/models/u2fsign_request.rb +1 -1
  137. data/lib/comet/models/u2fsign_response.rb +1 -1
  138. data/lib/comet/models/uninstall_config.rb +1 -1
  139. data/lib/comet/models/update_campaign_device_status.rb +1 -1
  140. data/lib/comet/models/update_campaign_options.rb +1 -1
  141. data/lib/comet/models/update_campaign_properties.rb +1 -1
  142. data/lib/comet/models/update_campaign_status.rb +1 -1
  143. data/lib/comet/models/update_campaign_status_device_entry.rb +1 -1
  144. data/lib/comet/models/user_custom_email_settings.rb +1 -1
  145. data/lib/comet/models/user_on_server.rb +1 -1
  146. data/lib/comet/models/user_policy.rb +16 -1
  147. data/lib/comet/models/user_profile_config.rb +1 -1
  148. data/lib/comet/models/user_profile_fragment.rb +1 -1
  149. data/lib/comet/models/vault_snapshot.rb +7 -1
  150. data/lib/comet/models/vsscomponent.rb +1 -1
  151. data/lib/comet/models/vsswriter_info.rb +1 -1
  152. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +1 -1
  153. data/lib/comet/models/web_interface_branding_properties.rb +1 -1
  154. data/lib/comet/models/webhook_option.rb +1 -1
  155. data/lib/comet/models/win_smbauth.rb +1 -1
  156. data/lib/comet/models/windows_code_sign_properties.rb +1 -1
  157. data/lib/comet_backup_ruby_sdk.rb +16 -1
  158. metadata +18 -3
@@ -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
@@ -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
@@ -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
@@ -0,0 +1,111 @@
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
+ # Office365Credential is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class Office365Credential
16
+
17
+ # @type [String] app_id
18
+ attr_accessor :app_id
19
+
20
+ # @type [String] tenant_id
21
+ attr_accessor :tenant_id
22
+
23
+ # @type [String] secret
24
+ attr_accessor :secret
25
+
26
+ # @type [String] app_cert
27
+ attr_accessor :app_cert
28
+
29
+ # @type [String] region
30
+ attr_accessor :region
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
+ @app_id = ''
41
+ @tenant_id = ''
42
+ @secret = ''
43
+ @app_cert = ''
44
+ @region = ''
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 'AppID'
62
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
63
+
64
+ @app_id = v
65
+ when 'TenantID'
66
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
67
+
68
+ @tenant_id = v
69
+ when 'Secret'
70
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
71
+
72
+ @secret = v
73
+ when 'AppCert'
74
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
75
+
76
+ @app_cert = v
77
+ when 'Region'
78
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
79
+
80
+ @region = v
81
+ else
82
+ @unknown_json_fields[k] = v
83
+ end
84
+ end
85
+ end
86
+
87
+ # @return [Hash] The complete object as a Ruby hash
88
+ def to_hash
89
+ ret = {}
90
+ ret['AppID'] = @app_id
91
+ ret['TenantID'] = @tenant_id
92
+ ret['Secret'] = @secret
93
+ ret['AppCert'] = @app_cert
94
+ ret['Region'] = @region
95
+ @unknown_json_fields.each do |k, v|
96
+ ret[k] = v
97
+ end
98
+ ret
99
+ end
100
+
101
+ # @return [Hash] The complete object as a Ruby hash
102
+ def to_h
103
+ to_hash
104
+ end
105
+
106
+ # @return [String] The complete object as a JSON string
107
+ def to_json(options = {})
108
+ to_hash.to_json(options)
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,132 @@
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
+ # Office365CustomSetting is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class Office365CustomSetting
16
+
17
+ # @type [String] mailbox_strategy
18
+ attr_accessor :mailbox_strategy
19
+
20
+ # @type [String] site_strategy
21
+ attr_accessor :site_strategy
22
+
23
+ # @type [Array<String>] mailbox_user_ids
24
+ attr_accessor :mailbox_user_ids
25
+
26
+ # @type [Array<String>] mailbox_group_ids
27
+ attr_accessor :mailbox_group_ids
28
+
29
+ # @type [Array<String>] site_ids
30
+ attr_accessor :site_ids
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
+ @mailbox_strategy = ''
41
+ @site_strategy = ''
42
+ @mailbox_user_ids = []
43
+ @mailbox_group_ids = []
44
+ @site_ids = []
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 'MailboxStrategy'
62
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
63
+
64
+ @mailbox_strategy = v
65
+ when 'SiteStrategy'
66
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
67
+
68
+ @site_strategy = v
69
+ when 'MailboxUserIDs'
70
+ if v.nil?
71
+ @mailbox_user_ids = []
72
+ else
73
+ @mailbox_user_ids = Array.new(v.length)
74
+ v.each_with_index do |v1, i1|
75
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
76
+
77
+ @mailbox_user_ids[i1] = v1
78
+ end
79
+ end
80
+ when 'MailboxGroupIDs'
81
+ if v.nil?
82
+ @mailbox_group_ids = []
83
+ else
84
+ @mailbox_group_ids = Array.new(v.length)
85
+ v.each_with_index do |v1, i1|
86
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
87
+
88
+ @mailbox_group_ids[i1] = v1
89
+ end
90
+ end
91
+ when 'SiteIDs'
92
+ if v.nil?
93
+ @site_ids = []
94
+ else
95
+ @site_ids = Array.new(v.length)
96
+ v.each_with_index do |v1, i1|
97
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
98
+
99
+ @site_ids[i1] = v1
100
+ end
101
+ end
102
+ else
103
+ @unknown_json_fields[k] = v
104
+ end
105
+ end
106
+ end
107
+
108
+ # @return [Hash] The complete object as a Ruby hash
109
+ def to_hash
110
+ ret = {}
111
+ ret['MailboxStrategy'] = @mailbox_strategy
112
+ ret['SiteStrategy'] = @site_strategy
113
+ ret['MailboxUserIDs'] = @mailbox_user_ids
114
+ ret['MailboxGroupIDs'] = @mailbox_group_ids
115
+ ret['SiteIDs'] = @site_ids
116
+ @unknown_json_fields.each do |k, v|
117
+ ret[k] = v
118
+ end
119
+ ret
120
+ end
121
+
122
+ # @return [Hash] The complete object as a Ruby hash
123
+ def to_h
124
+ to_hash
125
+ end
126
+
127
+ # @return [String] The complete object as a JSON string
128
+ def to_json(options = {})
129
+ to_hash.to_json(options)
130
+ end
131
+ end
132
+ end