azure_mgmt_compute 0.1.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 (87) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +3 -0
  5. data/Gemfile +17 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +139 -0
  8. data/Rakefile +5 -0
  9. data/azure_mgmt_compute.gemspec +39 -0
  10. data/lib/azure_mgmt_compute.rb +103 -0
  11. data/lib/azure_mgmt_compute/Models/additional_unattend_content.rb +108 -0
  12. data/lib/azure_mgmt_compute/Models/api_error.rb +121 -0
  13. data/lib/azure_mgmt_compute/Models/api_error_base.rb +76 -0
  14. data/lib/azure_mgmt_compute/Models/availability_set.rb +94 -0
  15. data/lib/azure_mgmt_compute/Models/availability_set_list_result.rb +79 -0
  16. data/lib/azure_mgmt_compute/Models/availability_set_properties.rb +130 -0
  17. data/lib/azure_mgmt_compute/Models/caching_types.rb +17 -0
  18. data/lib/azure_mgmt_compute/Models/component_names.rb +15 -0
  19. data/lib/azure_mgmt_compute/Models/compute_long_running_operation_properties.rb +58 -0
  20. data/lib/azure_mgmt_compute/Models/compute_long_running_operation_result.rb +126 -0
  21. data/lib/azure_mgmt_compute/Models/compute_operation_status.rb +18 -0
  22. data/lib/azure_mgmt_compute/Models/data_disk.rb +142 -0
  23. data/lib/azure_mgmt_compute/Models/data_disk_image.rb +62 -0
  24. data/lib/azure_mgmt_compute/Models/delete_operation_result.rb +109 -0
  25. data/lib/azure_mgmt_compute/Models/disk_create_option_types.rb +17 -0
  26. data/lib/azure_mgmt_compute/Models/disk_instance_view.rb +88 -0
  27. data/lib/azure_mgmt_compute/Models/hardware_profile.rb +67 -0
  28. data/lib/azure_mgmt_compute/Models/image_reference.rb +87 -0
  29. data/lib/azure_mgmt_compute/Models/inner_error.rb +68 -0
  30. data/lib/azure_mgmt_compute/Models/instance_view_status.rb +102 -0
  31. data/lib/azure_mgmt_compute/Models/linux_configuration.rb +75 -0
  32. data/lib/azure_mgmt_compute/Models/list_usages_result.rb +78 -0
  33. data/lib/azure_mgmt_compute/Models/network_interface_reference.rb +70 -0
  34. data/lib/azure_mgmt_compute/Models/network_interface_reference_properties.rb +59 -0
  35. data/lib/azure_mgmt_compute/Models/network_profile.rb +79 -0
  36. data/lib/azure_mgmt_compute/Models/operating_system_types.rb +16 -0
  37. data/lib/azure_mgmt_compute/Models/operation_status.rb +17 -0
  38. data/lib/azure_mgmt_compute/Models/osdisk.rb +135 -0
  39. data/lib/azure_mgmt_compute/Models/osdisk_image.rb +63 -0
  40. data/lib/azure_mgmt_compute/Models/osprofile.rb +149 -0
  41. data/lib/azure_mgmt_compute/Models/pass_names.rb +15 -0
  42. data/lib/azure_mgmt_compute/Models/plan.rb +85 -0
  43. data/lib/azure_mgmt_compute/Models/protocol_types.rb +16 -0
  44. data/lib/azure_mgmt_compute/Models/purchase_plan.rb +77 -0
  45. data/lib/azure_mgmt_compute/Models/setting_names.rb +16 -0
  46. data/lib/azure_mgmt_compute/Models/ssh_configuration.rb +79 -0
  47. data/lib/azure_mgmt_compute/Models/ssh_public_key.rb +72 -0
  48. data/lib/azure_mgmt_compute/Models/status_level_types.rb +17 -0
  49. data/lib/azure_mgmt_compute/Models/storage_profile.rb +110 -0
  50. data/lib/azure_mgmt_compute/Models/usage.rb +98 -0
  51. data/lib/azure_mgmt_compute/Models/usage_name.rb +68 -0
  52. data/lib/azure_mgmt_compute/Models/usage_unit.rb +15 -0
  53. data/lib/azure_mgmt_compute/Models/vault_certificate.rb +70 -0
  54. data/lib/azure_mgmt_compute/Models/vault_secret_group.rb +96 -0
  55. data/lib/azure_mgmt_compute/Models/virtual_hard_disk.rb +59 -0
  56. data/lib/azure_mgmt_compute/Models/virtual_machine.rb +142 -0
  57. data/lib/azure_mgmt_compute/Models/virtual_machine_agent_instance_view.rb +119 -0
  58. data/lib/azure_mgmt_compute/Models/virtual_machine_capture_parameters.rb +78 -0
  59. data/lib/azure_mgmt_compute/Models/virtual_machine_extension.rb +94 -0
  60. data/lib/azure_mgmt_compute/Models/virtual_machine_extension_handler_instance_view.rb +85 -0
  61. data/lib/azure_mgmt_compute/Models/virtual_machine_extension_image.rb +99 -0
  62. data/lib/azure_mgmt_compute/Models/virtual_machine_extension_image_properties.rb +102 -0
  63. data/lib/azure_mgmt_compute/Models/virtual_machine_extension_instance_view.rb +139 -0
  64. data/lib/azure_mgmt_compute/Models/virtual_machine_extension_properties.rb +133 -0
  65. data/lib/azure_mgmt_compute/Models/virtual_machine_image.rb +99 -0
  66. data/lib/azure_mgmt_compute/Models/virtual_machine_image_properties.rb +110 -0
  67. data/lib/azure_mgmt_compute/Models/virtual_machine_image_resource.rb +83 -0
  68. data/lib/azure_mgmt_compute/Models/virtual_machine_instance_view.rb +188 -0
  69. data/lib/azure_mgmt_compute/Models/virtual_machine_list_result.rb +89 -0
  70. data/lib/azure_mgmt_compute/Models/virtual_machine_properties.rb +156 -0
  71. data/lib/azure_mgmt_compute/Models/virtual_machine_size.rb +111 -0
  72. data/lib/azure_mgmt_compute/Models/virtual_machine_size_list_result.rb +79 -0
  73. data/lib/azure_mgmt_compute/Models/virtual_machine_size_types.rb +34 -0
  74. data/lib/azure_mgmt_compute/Models/win_rmconfiguration.rb +79 -0
  75. data/lib/azure_mgmt_compute/Models/win_rmlistener.rb +73 -0
  76. data/lib/azure_mgmt_compute/Models/windows_configuration.rb +126 -0
  77. data/lib/azure_mgmt_compute/availability_sets.rb +473 -0
  78. data/lib/azure_mgmt_compute/compute_management_client.rb +85 -0
  79. data/lib/azure_mgmt_compute/module_definition.rb +6 -0
  80. data/lib/azure_mgmt_compute/usage_operations.rb +113 -0
  81. data/lib/azure_mgmt_compute/version.rb +6 -0
  82. data/lib/azure_mgmt_compute/virtual_machine_extension_images.rb +325 -0
  83. data/lib/azure_mgmt_compute/virtual_machine_extensions.rb +384 -0
  84. data/lib/azure_mgmt_compute/virtual_machine_images.rb +525 -0
  85. data/lib/azure_mgmt_compute/virtual_machine_sizes.rb +114 -0
  86. data/lib/azure_mgmt_compute/virtual_machines.rb +1412 -0
  87. metadata +303 -0
@@ -0,0 +1,96 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::Compute
7
+ module Models
8
+ #
9
+ # Describes a set of certificates which are all in the same Key Vault.
10
+ #
11
+ class VaultSecretGroup
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [SubResource] Gets or sets the Relative URL of the Key Vault
16
+ # containing all of the certificates in VaultCertificates.
17
+ attr_accessor :source_vault
18
+
19
+ # @return [Array<VaultCertificate>] Gets or sets the list of key vault
20
+ # references in SourceVault which contain certificates
21
+ attr_accessor :vault_certificates
22
+
23
+ #
24
+ # Validate the object. Throws ValidationError if validation fails.
25
+ #
26
+ def validate
27
+ @source_vault.validate unless @source_vault.nil?
28
+ @vault_certificates.each{ |e| e.validate if e.respond_to?(:validate) } unless @vault_certificates.nil?
29
+ end
30
+
31
+ #
32
+ # Serializes given Model object into Ruby Hash.
33
+ # @param object Model object to serialize.
34
+ # @return [Hash] Serialized object in form of Ruby Hash.
35
+ #
36
+ def self.serialize_object(object)
37
+ object.validate
38
+ output_object = {}
39
+
40
+ serialized_property = object.source_vault
41
+ unless serialized_property.nil?
42
+ serialized_property = SubResource.serialize_object(serialized_property)
43
+ end
44
+ output_object['sourceVault'] = serialized_property unless serialized_property.nil?
45
+
46
+ serialized_property = object.vault_certificates
47
+ unless serialized_property.nil?
48
+ serializedArray = []
49
+ serialized_property.each do |element|
50
+ unless element.nil?
51
+ element = VaultCertificate.serialize_object(element)
52
+ end
53
+ serializedArray.push(element)
54
+ end
55
+ serialized_property = serializedArray
56
+ end
57
+ output_object['vaultCertificates'] = serialized_property unless serialized_property.nil?
58
+
59
+ output_object
60
+ end
61
+
62
+ #
63
+ # Deserializes given Ruby Hash into Model object.
64
+ # @param object [Hash] Ruby Hash object to deserialize.
65
+ # @return [VaultSecretGroup] Deserialized object.
66
+ #
67
+ def self.deserialize_object(object)
68
+ return if object.nil?
69
+ output_object = VaultSecretGroup.new
70
+
71
+ deserialized_property = object['sourceVault']
72
+ unless deserialized_property.nil?
73
+ deserialized_property = SubResource.deserialize_object(deserialized_property)
74
+ end
75
+ output_object.source_vault = deserialized_property
76
+
77
+ deserialized_property = object['vaultCertificates']
78
+ unless deserialized_property.nil?
79
+ deserializedArray = [];
80
+ deserialized_property.each do |element1|
81
+ unless element1.nil?
82
+ element1 = VaultCertificate.deserialize_object(element1)
83
+ end
84
+ deserializedArray.push(element1);
85
+ end
86
+ deserialized_property = deserializedArray;
87
+ end
88
+ output_object.vault_certificates = deserialized_property
89
+
90
+ output_object.validate
91
+
92
+ output_object
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,59 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::Compute
7
+ module Models
8
+ #
9
+ # Describes the uri of a disk.
10
+ #
11
+ class VirtualHardDisk
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] Gets or sets the virtual hard disk's uri. It should
16
+ # be a valid Uri to a virtual hard disk.
17
+ attr_accessor :uri
18
+
19
+ #
20
+ # Validate the object. Throws ValidationError if validation fails.
21
+ #
22
+ def validate
23
+ # Nothing to validate
24
+ end
25
+
26
+ #
27
+ # Serializes given Model object into Ruby Hash.
28
+ # @param object Model object to serialize.
29
+ # @return [Hash] Serialized object in form of Ruby Hash.
30
+ #
31
+ def self.serialize_object(object)
32
+ object.validate
33
+ output_object = {}
34
+
35
+ serialized_property = object.uri
36
+ output_object['uri'] = serialized_property unless serialized_property.nil?
37
+
38
+ output_object
39
+ end
40
+
41
+ #
42
+ # Deserializes given Ruby Hash into Model object.
43
+ # @param object [Hash] Ruby Hash object to deserialize.
44
+ # @return [VirtualHardDisk] Deserialized object.
45
+ #
46
+ def self.deserialize_object(object)
47
+ return if object.nil?
48
+ output_object = VirtualHardDisk.new
49
+
50
+ deserialized_property = object['uri']
51
+ output_object.uri = deserialized_property
52
+
53
+ output_object.validate
54
+
55
+ output_object
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,142 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::Compute
7
+ module Models
8
+ #
9
+ # Describes a Virtual Machine.
10
+ #
11
+ class VirtualMachine < MsRestAzure::Resource
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [Plan] Gets or sets the purchase plan when deploying virtual
16
+ # machine from VM Marketplace images.
17
+ attr_accessor :plan
18
+
19
+ # @return [VirtualMachineProperties]
20
+ attr_accessor :properties
21
+
22
+ # @return [Array<VirtualMachineExtension>] Gets the virtual machine
23
+ # child extension resources.
24
+ attr_accessor :resources
25
+
26
+ #
27
+ # Validate the object. Throws ValidationError if validation fails.
28
+ #
29
+ def validate
30
+ @plan.validate unless @plan.nil?
31
+ @properties.validate unless @properties.nil?
32
+ @resources.each{ |e| e.validate if e.respond_to?(:validate) } unless @resources.nil?
33
+ end
34
+
35
+ #
36
+ # Serializes given Model object into Ruby Hash.
37
+ # @param object Model object to serialize.
38
+ # @return [Hash] Serialized object in form of Ruby Hash.
39
+ #
40
+ def self.serialize_object(object)
41
+ object.validate
42
+ output_object = {}
43
+
44
+ serialized_property = object.location
45
+ output_object['location'] = serialized_property unless serialized_property.nil?
46
+
47
+ serialized_property = object.id
48
+ output_object['id'] = serialized_property unless serialized_property.nil?
49
+
50
+ serialized_property = object.name
51
+ output_object['name'] = serialized_property unless serialized_property.nil?
52
+
53
+ serialized_property = object.type
54
+ output_object['type'] = serialized_property unless serialized_property.nil?
55
+
56
+ serialized_property = object.tags
57
+ output_object['tags'] = serialized_property unless serialized_property.nil?
58
+
59
+ serialized_property = object.plan
60
+ unless serialized_property.nil?
61
+ serialized_property = Plan.serialize_object(serialized_property)
62
+ end
63
+ output_object['plan'] = serialized_property unless serialized_property.nil?
64
+
65
+ serialized_property = object.properties
66
+ unless serialized_property.nil?
67
+ serialized_property = VirtualMachineProperties.serialize_object(serialized_property)
68
+ end
69
+ output_object['properties'] = serialized_property unless serialized_property.nil?
70
+
71
+ serialized_property = object.resources
72
+ unless serialized_property.nil?
73
+ serializedArray = []
74
+ serialized_property.each do |element|
75
+ unless element.nil?
76
+ element = VirtualMachineExtension.serialize_object(element)
77
+ end
78
+ serializedArray.push(element)
79
+ end
80
+ serialized_property = serializedArray
81
+ end
82
+ output_object['resources'] = serialized_property unless serialized_property.nil?
83
+
84
+ output_object
85
+ end
86
+
87
+ #
88
+ # Deserializes given Ruby Hash into Model object.
89
+ # @param object [Hash] Ruby Hash object to deserialize.
90
+ # @return [VirtualMachine] Deserialized object.
91
+ #
92
+ def self.deserialize_object(object)
93
+ return if object.nil?
94
+ output_object = VirtualMachine.new
95
+
96
+ deserialized_property = object['location']
97
+ output_object.location = deserialized_property
98
+
99
+ deserialized_property = object['id']
100
+ output_object.id = deserialized_property
101
+
102
+ deserialized_property = object['name']
103
+ output_object.name = deserialized_property
104
+
105
+ deserialized_property = object['type']
106
+ output_object.type = deserialized_property
107
+
108
+ deserialized_property = object['tags']
109
+ output_object.tags = deserialized_property
110
+
111
+ deserialized_property = object['plan']
112
+ unless deserialized_property.nil?
113
+ deserialized_property = Plan.deserialize_object(deserialized_property)
114
+ end
115
+ output_object.plan = deserialized_property
116
+
117
+ deserialized_property = object['properties']
118
+ unless deserialized_property.nil?
119
+ deserialized_property = VirtualMachineProperties.deserialize_object(deserialized_property)
120
+ end
121
+ output_object.properties = deserialized_property
122
+
123
+ deserialized_property = object['resources']
124
+ unless deserialized_property.nil?
125
+ deserializedArray = [];
126
+ deserialized_property.each do |element1|
127
+ unless element1.nil?
128
+ element1 = VirtualMachineExtension.deserialize_object(element1)
129
+ end
130
+ deserializedArray.push(element1);
131
+ end
132
+ deserialized_property = deserializedArray;
133
+ end
134
+ output_object.resources = deserialized_property
135
+
136
+ output_object.validate
137
+
138
+ output_object
139
+ end
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,119 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::Compute
7
+ module Models
8
+ #
9
+ # The instance view of the VM Agent running on the virtual machine.
10
+ #
11
+ class VirtualMachineAgentInstanceView
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] Gets or sets the VM Agent full version.
16
+ attr_accessor :vm_agent_version
17
+
18
+ # @return [Array<VirtualMachineExtensionHandlerInstanceView>] Gets or
19
+ # sets the virtual machine extension handler instance view.
20
+ attr_accessor :extension_handlers
21
+
22
+ # @return [Array<InstanceViewStatus>] Gets or sets the resource status
23
+ # information.
24
+ attr_accessor :statuses
25
+
26
+ #
27
+ # Validate the object. Throws ValidationError if validation fails.
28
+ #
29
+ def validate
30
+ @extension_handlers.each{ |e| e.validate if e.respond_to?(:validate) } unless @extension_handlers.nil?
31
+ @statuses.each{ |e| e.validate if e.respond_to?(:validate) } unless @statuses.nil?
32
+ end
33
+
34
+ #
35
+ # Serializes given Model object into Ruby Hash.
36
+ # @param object Model object to serialize.
37
+ # @return [Hash] Serialized object in form of Ruby Hash.
38
+ #
39
+ def self.serialize_object(object)
40
+ object.validate
41
+ output_object = {}
42
+
43
+ serialized_property = object.vm_agent_version
44
+ output_object['vmAgentVersion'] = serialized_property unless serialized_property.nil?
45
+
46
+ serialized_property = object.extension_handlers
47
+ unless serialized_property.nil?
48
+ serializedArray = []
49
+ serialized_property.each do |element|
50
+ unless element.nil?
51
+ element = VirtualMachineExtensionHandlerInstanceView.serialize_object(element)
52
+ end
53
+ serializedArray.push(element)
54
+ end
55
+ serialized_property = serializedArray
56
+ end
57
+ output_object['extensionHandlers'] = serialized_property unless serialized_property.nil?
58
+
59
+ serialized_property = object.statuses
60
+ unless serialized_property.nil?
61
+ serializedArray = []
62
+ serialized_property.each do |element1|
63
+ unless element1.nil?
64
+ element1 = InstanceViewStatus.serialize_object(element1)
65
+ end
66
+ serializedArray.push(element1)
67
+ end
68
+ serialized_property = serializedArray
69
+ end
70
+ output_object['statuses'] = serialized_property unless serialized_property.nil?
71
+
72
+ output_object
73
+ end
74
+
75
+ #
76
+ # Deserializes given Ruby Hash into Model object.
77
+ # @param object [Hash] Ruby Hash object to deserialize.
78
+ # @return [VirtualMachineAgentInstanceView] Deserialized object.
79
+ #
80
+ def self.deserialize_object(object)
81
+ return if object.nil?
82
+ output_object = VirtualMachineAgentInstanceView.new
83
+
84
+ deserialized_property = object['vmAgentVersion']
85
+ output_object.vm_agent_version = deserialized_property
86
+
87
+ deserialized_property = object['extensionHandlers']
88
+ unless deserialized_property.nil?
89
+ deserializedArray = [];
90
+ deserialized_property.each do |element2|
91
+ unless element2.nil?
92
+ element2 = VirtualMachineExtensionHandlerInstanceView.deserialize_object(element2)
93
+ end
94
+ deserializedArray.push(element2);
95
+ end
96
+ deserialized_property = deserializedArray;
97
+ end
98
+ output_object.extension_handlers = deserialized_property
99
+
100
+ deserialized_property = object['statuses']
101
+ unless deserialized_property.nil?
102
+ deserializedArray = [];
103
+ deserialized_property.each do |element3|
104
+ unless element3.nil?
105
+ element3 = InstanceViewStatus.deserialize_object(element3)
106
+ end
107
+ deserializedArray.push(element3);
108
+ end
109
+ deserialized_property = deserializedArray;
110
+ end
111
+ output_object.statuses = deserialized_property
112
+
113
+ output_object.validate
114
+
115
+ output_object
116
+ end
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,78 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::Compute
7
+ module Models
8
+ #
9
+ # Capture Virtual Machine parameters.
10
+ #
11
+ class VirtualMachineCaptureParameters
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] Gets or sets the captured VirtualHardDisk's name
16
+ # prefix.
17
+ attr_accessor :vhd_prefix
18
+
19
+ # @return [String] Gets or sets the destination container name.
20
+ attr_accessor :destination_container_name
21
+
22
+ # @return [Boolean] Gets or sets whether it overwrites destination
23
+ # VirtualHardDisk if true, in case of conflict.
24
+ attr_accessor :overwrite_vhds
25
+
26
+ #
27
+ # Validate the object. Throws ValidationError if validation fails.
28
+ #
29
+ def validate
30
+ # Nothing to validate
31
+ end
32
+
33
+ #
34
+ # Serializes given Model object into Ruby Hash.
35
+ # @param object Model object to serialize.
36
+ # @return [Hash] Serialized object in form of Ruby Hash.
37
+ #
38
+ def self.serialize_object(object)
39
+ object.validate
40
+ output_object = {}
41
+
42
+ serialized_property = object.vhd_prefix
43
+ output_object['vhdPrefix'] = serialized_property unless serialized_property.nil?
44
+
45
+ serialized_property = object.destination_container_name
46
+ output_object['destinationContainerName'] = serialized_property unless serialized_property.nil?
47
+
48
+ serialized_property = object.overwrite_vhds
49
+ output_object['overwriteVhds'] = serialized_property unless serialized_property.nil?
50
+
51
+ output_object
52
+ end
53
+
54
+ #
55
+ # Deserializes given Ruby Hash into Model object.
56
+ # @param object [Hash] Ruby Hash object to deserialize.
57
+ # @return [VirtualMachineCaptureParameters] Deserialized object.
58
+ #
59
+ def self.deserialize_object(object)
60
+ return if object.nil?
61
+ output_object = VirtualMachineCaptureParameters.new
62
+
63
+ deserialized_property = object['vhdPrefix']
64
+ output_object.vhd_prefix = deserialized_property
65
+
66
+ deserialized_property = object['destinationContainerName']
67
+ output_object.destination_container_name = deserialized_property
68
+
69
+ deserialized_property = object['overwriteVhds']
70
+ output_object.overwrite_vhds = deserialized_property
71
+
72
+ output_object.validate
73
+
74
+ output_object
75
+ end
76
+ end
77
+ end
78
+ end