comet_backup_ruby_sdk 2.9.0 → 2.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -0
  3. data/.rubocop.yml +0 -0
  4. data/CHANGELOG.md +16 -0
  5. data/Gemfile +0 -0
  6. data/Gemfile.lock +1 -1
  7. data/LICENSE +0 -0
  8. data/README.md +0 -0
  9. data/Rakefile +0 -0
  10. data/comet_backup_ruby_sdk.gemspec +1 -1
  11. data/lib/comet/comet_server.rb +137 -1
  12. data/lib/comet/definitions.rb +47 -9
  13. data/lib/comet/models/admin_account_properties_response.rb +1 -0
  14. data/lib/comet/models/admin_security_options.rb +4 -0
  15. data/lib/comet/models/admin_u2fregistration.rb +2 -0
  16. data/lib/comet/models/admin_user_permissions.rb +81 -0
  17. data/lib/comet/models/admin_web_authn_registration.rb +2 -0
  18. data/lib/comet/models/allowed_admin_user.rb +4 -0
  19. data/lib/comet/models/authentication_role_options.rb +2 -0
  20. data/lib/comet/models/branding_options.rb +6 -1
  21. data/lib/comet/models/branding_properties.rb +6 -1
  22. data/lib/comet/models/bucket_properties.rb +2 -0
  23. data/lib/comet/models/constellation_stats.rb +5 -0
  24. data/lib/comet/models/device_config.rb +12 -0
  25. data/lib/comet/models/email_reporting_option.rb +2 -0
  26. data/lib/comet/models/external_authentication_source.rb +10 -0
  27. data/lib/comet/models/external_authentication_source_display.rb +82 -0
  28. data/lib/comet/models/external_authentication_source_response.rb +99 -0
  29. data/lib/comet/models/external_ldapauthentication_source_server.rb +1 -0
  30. data/lib/comet/models/external_ldapauthentication_source_settings.rb +1 -0
  31. data/lib/comet/models/install_token.rb +5 -0
  32. data/lib/comet/models/mac_oscode_sign_properties.rb +6 -0
  33. data/lib/comet/models/mssqlconnection.rb +3 -0
  34. data/lib/comet/models/news_entry.rb +1 -0
  35. data/lib/comet/models/oidc_claim.rb +84 -0
  36. data/lib/comet/models/oidc_config.rb +203 -0
  37. data/lib/comet/models/osinfo.rb +30 -0
  38. data/lib/comet/models/partition.rb +5 -0
  39. data/lib/comet/models/private_branding_properties.rb +6 -1
  40. data/lib/comet/models/psaconfig.rb +4 -0
  41. data/lib/comet/models/remote_server_address.rb +10 -0
  42. data/lib/comet/models/remote_storage_option.rb +10 -0
  43. data/lib/comet/models/replica_server.rb +10 -0
  44. data/lib/comet/models/restore_job_advanced_options.rb +19 -0
  45. data/lib/comet/models/retention_range.rb +8 -0
  46. data/lib/comet/models/search_clause.rb +16 -0
  47. data/lib/comet/models/self_backup_export_options.rb +1 -0
  48. data/lib/comet/models/self_backup_target.rb +1 -0
  49. data/lib/comet/models/server_config_options.rb +1 -0
  50. data/lib/comet/models/server_meta_branding_properties.rb +19 -0
  51. data/lib/comet/models/server_meta_version_info.rb +2 -0
  52. data/lib/comet/models/session_key_regenerated_response.rb +2 -0
  53. data/lib/comet/models/single_field_source.rb +1 -0
  54. data/lib/comet/models/software_update_news_response.rb +4 -0
  55. data/lib/comet/models/source_basic_info.rb +2 -0
  56. data/lib/comet/models/source_config.rb +20 -0
  57. data/lib/comet/models/storage_role_options.rb +1 -0
  58. data/lib/comet/models/totp_regenerated_response.rb +3 -0
  59. data/lib/comet/models/update_campaign_device_status.rb +1 -0
  60. data/lib/comet/models/update_campaign_properties.rb +1 -0
  61. data/lib/comet/models/update_campaign_status.rb +1 -0
  62. data/lib/comet/models/update_campaign_status_device_entry.rb +1 -0
  63. data/lib/comet/models/user_policy.rb +6 -0
  64. data/lib/comet/models/vault_snapshot.rb +1 -0
  65. data/lib/comet/models/vsscomponent.rb +1 -0
  66. data/lib/comet/models/web_authn_credential.rb +2 -0
  67. data/lib/comet/models/web_authn_credential_descriptor.rb +1 -0
  68. data/lib/comet/models/web_authn_public_key_credential_creation_options.rb +1 -0
  69. data/lib/comet/models/web_authn_public_key_credential_request_options.rb +1 -0
  70. data/lib/comet/models/web_authn_user_entity.rb +1 -0
  71. data/lib/comet/models/windows_code_sign_properties.rb +5 -1
  72. data/lib/comet_backup_ruby_sdk.rb +4 -0
  73. metadata +6 -2
@@ -36,6 +36,7 @@ module Comet
36
36
  # @type [Boolean] hide_background_logo
37
37
  attr_accessor :hide_background_logo
38
38
 
39
+ # One of the CLIENTBRANDINGBUILD_ constants
39
40
  # @type [Number] build_mode
40
41
  attr_accessor :build_mode
41
42
 
@@ -63,12 +64,14 @@ module Comet
63
64
  # @type [String] package_identifier
64
65
  attr_accessor :package_identifier
65
66
 
67
+ # One of the WINDOWSCODESIGN_METHOD_ constants
66
68
  # @type [Number] windows_code_sign_method
67
69
  attr_accessor :windows_code_sign_method
68
70
 
69
71
  # @type [String] windows_code_sign_pkcs12file_path
70
72
  attr_accessor :windows_code_sign_pkcs12file_path
71
73
 
74
+ # One of the ENCRYPTIONMETHOD_ constants
72
75
  # @type [Number] windows_code_sign_pkcs12password_format
73
76
  attr_accessor :windows_code_sign_pkcs12password_format
74
77
 
@@ -81,13 +84,14 @@ module Comet
81
84
  # @type [String] windows_code_sign_pkcs11module
82
85
  attr_accessor :windows_code_sign_pkcs11module
83
86
 
87
+ # This field was deprecated between 23.3.0 and 23.6.x, but is now used again.
84
88
  # @type [String] windows_code_sign_pkcs11certfile
85
- # @deprecated This member has been deprecated since Comet version 22.12.7
86
89
  attr_accessor :windows_code_sign_pkcs11certfile
87
90
 
88
91
  # @type [String] windows_code_sign_pkcs11key_id
89
92
  attr_accessor :windows_code_sign_pkcs11key_id
90
93
 
94
+ # One of the ENCRYPTIONMETHOD_ constants
91
95
  # @type [Number] windows_code_sign_pkcs11password_format
92
96
  attr_accessor :windows_code_sign_pkcs11password_format
93
97
 
@@ -103,6 +107,7 @@ module Comet
103
107
  # @type [String] windows_code_sign_azure_app_id
104
108
  attr_accessor :windows_code_sign_azure_app_id
105
109
 
110
+ # One of the ENCRYPTIONMETHOD_ constants
106
111
  # @type [Number] windows_code_sign_azure_app_secret_format
107
112
  attr_accessor :windows_code_sign_azure_app_secret_format
108
113
 
@@ -15,9 +15,11 @@ module Comet
15
15
  # @type [String] organization_id
16
16
  attr_accessor :organization_id
17
17
 
18
+ # Unix timestamp, in seconds.
18
19
  # @type [Number] create_time
19
20
  attr_accessor :create_time
20
21
 
22
+ # One of the PASSWORD_FORMAT_ constants
21
23
  # @type [Number] read_write_key_format
22
24
  attr_accessor :read_write_key_format
23
25
 
@@ -12,12 +12,17 @@ module Comet
12
12
  # ConstellationStats is a typed class wrapper around the underlying Comet Server API data structure.
13
13
  class ConstellationStats
14
14
 
15
+ # Unix timestamp, in seconds.
15
16
  # @type [Number] last_check_start
16
17
  attr_accessor :last_check_start
17
18
 
19
+ # The total number of Constellation bucket report scans that have been performed since this Comet
20
+ # Server was last restarted
18
21
  # @type [Number] total_checks_started
19
22
  attr_accessor :total_checks_started
20
23
 
24
+ # The total number of buckets that Constellation has successfully deleted since this Comet Server
25
+ # was last restarted
21
26
  # @type [Number] total_buckets_deleted
22
27
  attr_accessor :total_buckets_deleted
23
28
 
@@ -32,6 +32,10 @@ module Comet
32
32
  # @type [String] device_timezone
33
33
  attr_accessor :device_timezone
34
34
 
35
+ # This field is available in Comet 23.6.0 and later.
36
+ # @type [String] client_version
37
+ attr_accessor :client_version
38
+
35
39
  # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
36
40
  attr_accessor :unknown_json_fields
37
41
 
@@ -45,6 +49,7 @@ module Comet
45
49
  @platform_version = Comet::OSInfo.new
46
50
  @sources = {}
47
51
  @device_timezone = ''
52
+ @client_version = ''
48
53
  @unknown_json_fields = {}
49
54
  end
50
55
 
@@ -86,6 +91,10 @@ module Comet
86
91
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
87
92
 
88
93
  @device_timezone = v
94
+ when 'ClientVersion'
95
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
96
+
97
+ @client_version = v
89
98
  else
90
99
  @unknown_json_fields[k] = v
91
100
  end
@@ -108,6 +117,9 @@ module Comet
108
117
  unless @device_timezone.nil?
109
118
  ret['DeviceTimezone'] = @device_timezone
110
119
  end
120
+ unless @client_version.nil?
121
+ ret['ClientVersion'] = @client_version
122
+ end
111
123
  @unknown_json_fields.each do |k, v|
112
124
  ret[k] = v
113
125
  end
@@ -15,9 +15,11 @@ module Comet
15
15
  # @type [Comet::EmailReportConfig] email_report_config
16
16
  attr_accessor :email_report_config
17
17
 
18
+ # A supported language code (e.g. "en_US" or the DEFAULT_LANGUAGE constant)
18
19
  # @type [String] language_code
19
20
  attr_accessor :language_code
20
21
 
22
+ # The timezone in IANA format (e.g. "Pacific/Auckland" or the DEFAULT_TIMEZONE constant)
21
23
  # @type [String] local_timezone
22
24
  attr_accessor :local_timezone
23
25
 
@@ -30,6 +30,9 @@ module Comet
30
30
  # @type [Comet::ExternalLDAPAuthenticationSourceSettings] ldap
31
31
  attr_accessor :ldap
32
32
 
33
+ # @type [Comet::OidcConfig] oidc
34
+ attr_accessor :oidc
35
+
33
36
  # @type [Comet::B2VirtualStorageRoleSettings] b2
34
37
  attr_accessor :b2
35
38
 
@@ -66,6 +69,7 @@ module Comet
66
69
  @username = ''
67
70
  @password = ''
68
71
  @ldap = Comet::ExternalLDAPAuthenticationSourceSettings.new
72
+ @oidc = Comet::OidcConfig.new
69
73
  @b2 = Comet::B2VirtualStorageRoleSettings.new
70
74
  @wasabi = Comet::WasabiVirtualStorageRoleSettings.new
71
75
  @custom = Comet::CustomRemoteBucketSettings.new
@@ -112,6 +116,9 @@ module Comet
112
116
  when 'LDAP'
113
117
  @ldap = Comet::ExternalLDAPAuthenticationSourceSettings.new
114
118
  @ldap.from_hash(v)
119
+ when 'OIDC'
120
+ @oidc = Comet::OidcConfig.new
121
+ @oidc.from_hash(v)
115
122
  when 'B2'
116
123
  @b2 = Comet::B2VirtualStorageRoleSettings.new
117
124
  @b2.from_hash(v)
@@ -156,6 +163,9 @@ module Comet
156
163
  unless @ldap.nil?
157
164
  ret['LDAP'] = @ldap
158
165
  end
166
+ unless @oidc.nil?
167
+ ret['OIDC'] = @oidc
168
+ end
159
169
  unless @b2.nil?
160
170
  ret['B2'] = @b2
161
171
  end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2023 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+
8
+ require 'json'
9
+
10
+ module Comet
11
+
12
+ # ExternalAuthenticationSourceDisplay is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class ExternalAuthenticationSourceDisplay
14
+
15
+ # @type [String] display_name
16
+ attr_accessor :display_name
17
+
18
+ # @type [String] login_start_url
19
+ attr_accessor :login_start_url
20
+
21
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
22
+ attr_accessor :unknown_json_fields
23
+
24
+ def initialize
25
+ clear
26
+ end
27
+
28
+ def clear
29
+ @display_name = ''
30
+ @login_start_url = ''
31
+ @unknown_json_fields = {}
32
+ end
33
+
34
+ # @param [String] json_string The complete object in JSON format
35
+ def from_json(json_string)
36
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
37
+
38
+ from_hash(JSON.parse(json_string))
39
+ end
40
+
41
+ # @param [Hash] obj The complete object as a Ruby hash
42
+ def from_hash(obj)
43
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
44
+
45
+ obj.each do |k, v|
46
+ case k
47
+ when 'DisplayName'
48
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
49
+
50
+ @display_name = v
51
+ when 'LoginStartURL'
52
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
53
+
54
+ @login_start_url = v
55
+ else
56
+ @unknown_json_fields[k] = v
57
+ end
58
+ end
59
+ end
60
+
61
+ # @return [Hash] The complete object as a Ruby hash
62
+ def to_hash
63
+ ret = {}
64
+ ret['DisplayName'] = @display_name
65
+ ret['LoginStartURL'] = @login_start_url
66
+ @unknown_json_fields.each do |k, v|
67
+ ret[k] = v
68
+ end
69
+ ret
70
+ end
71
+
72
+ # @return [Hash] The complete object as a Ruby hash
73
+ def to_h
74
+ to_hash
75
+ end
76
+
77
+ # @return [String] The complete object as a JSON string
78
+ def to_json(options = {})
79
+ to_hash.to_json(options)
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2023 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+
8
+ require 'json'
9
+
10
+ module Comet
11
+
12
+ # ExternalAuthenticationSourceResponse is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class ExternalAuthenticationSourceResponse
14
+
15
+ # @type [Number] status
16
+ attr_accessor :status
17
+
18
+ # @type [String] message
19
+ attr_accessor :message
20
+
21
+ # @type [String] id
22
+ attr_accessor :id
23
+
24
+ # @type [Comet::ExternalAuthenticationSource] source
25
+ attr_accessor :source
26
+
27
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
28
+ attr_accessor :unknown_json_fields
29
+
30
+ def initialize
31
+ clear
32
+ end
33
+
34
+ def clear
35
+ @status = 0
36
+ @message = ''
37
+ @id = ''
38
+ @source = Comet::ExternalAuthenticationSource.new
39
+ @unknown_json_fields = {}
40
+ end
41
+
42
+ # @param [String] json_string The complete object in JSON format
43
+ def from_json(json_string)
44
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
45
+
46
+ from_hash(JSON.parse(json_string))
47
+ end
48
+
49
+ # @param [Hash] obj The complete object as a Ruby hash
50
+ def from_hash(obj)
51
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
52
+
53
+ obj.each do |k, v|
54
+ case k
55
+ when 'Status'
56
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
57
+
58
+ @status = v
59
+ when 'Message'
60
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
61
+
62
+ @message = v
63
+ when 'ID'
64
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
65
+
66
+ @id = v
67
+ when 'Source'
68
+ @source = Comet::ExternalAuthenticationSource.new
69
+ @source.from_hash(v)
70
+ else
71
+ @unknown_json_fields[k] = v
72
+ end
73
+ end
74
+ end
75
+
76
+ # @return [Hash] The complete object as a Ruby hash
77
+ def to_hash
78
+ ret = {}
79
+ ret['Status'] = @status
80
+ ret['Message'] = @message
81
+ ret['ID'] = @id
82
+ ret['Source'] = @source
83
+ @unknown_json_fields.each do |k, v|
84
+ ret[k] = v
85
+ end
86
+ ret
87
+ end
88
+
89
+ # @return [Hash] The complete object as a Ruby hash
90
+ def to_h
91
+ to_hash
92
+ end
93
+
94
+ # @return [String] The complete object as a JSON string
95
+ def to_json(options = {})
96
+ to_hash.to_json(options)
97
+ end
98
+ end
99
+ end
@@ -18,6 +18,7 @@ module Comet
18
18
  # @type [Number] port
19
19
  attr_accessor :port
20
20
 
21
+ # One of the LDAPSECURITYMETHOD_ constants (e.g. "plain" / "ldaps" / "starttls")
21
22
  # @type [String] security_method
22
23
  attr_accessor :security_method
23
24
 
@@ -18,6 +18,7 @@ module Comet
18
18
  # @type [Number] port
19
19
  attr_accessor :port
20
20
 
21
+ # One of the LDAPSECURITYMETHOD_ constants (e.g. "plain" / "ldaps" / "starttls")
21
22
  # @type [String] security_method
22
23
  attr_accessor :security_method
23
24
 
@@ -15,18 +15,23 @@ module Comet
15
15
  # @type [String] username
16
16
  attr_accessor :username
17
17
 
18
+ # The URL of the Comet Server (Auth Role) for the target user to log in to.
18
19
  # @type [String] server
19
20
  attr_accessor :server
20
21
 
22
+ # The token for use with the "/TOKEN=" silent install flag.
21
23
  # @type [String] token
22
24
  attr_accessor :token
23
25
 
26
+ # Unix timestamp, in seconds.
24
27
  # @type [Number] create_time
25
28
  attr_accessor :create_time
26
29
 
30
+ # If the token has been used, it cannot be used again.
27
31
  # @type [Boolean] used
28
32
  attr_accessor :used
29
33
 
34
+ # Unix timestamp, in seconds.
30
35
  # @type [Number] expire_time
31
36
  attr_accessor :expire_time
32
37
 
@@ -22,9 +22,13 @@ module Comet
22
22
  # @type [Comet::SSHConnection] sshserver
23
23
  attr_accessor :sshserver
24
24
 
25
+ # "Developer ID Installer" certificate, either a local filepath or a resource:// URI. Used for
26
+ # signing the final flat *.pkg.
25
27
  # @type [String] certificate_name
26
28
  attr_accessor :certificate_name
27
29
 
30
+ # "Developer ID Application" certificate, either a local filepath or a resource:// URI. Used for
31
+ # signing internal binaries if Notary is enabled
28
32
  # @type [String] app_certificate_name
29
33
  attr_accessor :app_certificate_name
30
34
 
@@ -34,6 +38,7 @@ module Comet
34
38
  # @type [String] apple_idpass
35
39
  attr_accessor :apple_idpass
36
40
 
41
+ # One of the ENCRYPTIONMETHOD_ constants
37
42
  # @type [Number] apple_idpass_format
38
43
  attr_accessor :apple_idpass_format
39
44
 
@@ -46,6 +51,7 @@ module Comet
46
51
  # @type [String] pfx_file_password
47
52
  attr_accessor :pfx_file_password
48
53
 
54
+ # One of the ENCRYPTIONMETHOD_ constants
49
55
  # @type [Number] pfx_file_password_format
50
56
  attr_accessor :pfx_file_password_format
51
57
 
@@ -12,6 +12,7 @@ module Comet
12
12
  # MSSQLConnection is a typed class wrapper around the underlying Comet Server API data structure.
13
13
  class MSSQLConnection
14
14
 
15
+ # One of the MSSQL_AUTH_ constants (e.g. "windows" or "native")
15
16
  # @type [String] type
16
17
  attr_accessor :type
17
18
 
@@ -22,11 +23,13 @@ module Comet
22
23
  attr_accessor :password
23
24
 
24
25
  # @type [String] hostname
26
+ # @deprecated This member has been deprecated since Comet version Unused
25
27
  attr_accessor :hostname
26
28
 
27
29
  # @type [String] instance_name
28
30
  attr_accessor :instance_name
29
31
 
32
+ # One of the MSSQL_METHOD_ constants, to control using x86_32 or x86_64 OLEDB drivers
30
33
  # @type [String] method
31
34
  attr_accessor :method
32
35
 
@@ -15,6 +15,7 @@ module Comet
15
15
  # @type [String] organization_id
16
16
  attr_accessor :organization_id
17
17
 
18
+ # Unix timestamp, in seconds.
18
19
  # @type [Number] date_time
19
20
  attr_accessor :date_time
20
21
 
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2023 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+
8
+ require 'json'
9
+
10
+ module Comet
11
+
12
+ # OidcClaim is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class OidcClaim
14
+
15
+ # @type [String] name
16
+ attr_accessor :name
17
+
18
+ # @type [String] value
19
+ attr_accessor :value
20
+
21
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
22
+ attr_accessor :unknown_json_fields
23
+
24
+ def initialize
25
+ clear
26
+ end
27
+
28
+ def clear
29
+ @name = ''
30
+ @value = ''
31
+ @unknown_json_fields = {}
32
+ end
33
+
34
+ # @param [String] json_string The complete object in JSON format
35
+ def from_json(json_string)
36
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
37
+
38
+ from_hash(JSON.parse(json_string))
39
+ end
40
+
41
+ # @param [Hash] obj The complete object as a Ruby hash
42
+ def from_hash(obj)
43
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
44
+
45
+ obj.each do |k, v|
46
+ case k
47
+ when 'Name'
48
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
49
+
50
+ @name = v
51
+ when 'Value'
52
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
53
+
54
+ @value = v
55
+ else
56
+ @unknown_json_fields[k] = v
57
+ end
58
+ end
59
+ end
60
+
61
+ # @return [Hash] The complete object as a Ruby hash
62
+ def to_hash
63
+ ret = {}
64
+ ret['Name'] = @name
65
+ unless @value.nil?
66
+ ret['Value'] = @value
67
+ end
68
+ @unknown_json_fields.each do |k, v|
69
+ ret[k] = v
70
+ end
71
+ ret
72
+ end
73
+
74
+ # @return [Hash] The complete object as a Ruby hash
75
+ def to_h
76
+ to_hash
77
+ end
78
+
79
+ # @return [String] The complete object as a JSON string
80
+ def to_json(options = {})
81
+ to_hash.to_json(options)
82
+ end
83
+ end
84
+ end