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,79 @@
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 Windows Remote Management configuration of the VM
10
+ #
11
+ class WinRMConfiguration
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [Array<WinRMListener>] Gets or sets the list of Windows Remote
16
+ # Management listeners
17
+ attr_accessor :listeners
18
+
19
+ #
20
+ # Validate the object. Throws ValidationError if validation fails.
21
+ #
22
+ def validate
23
+ @listeners.each{ |e| e.validate if e.respond_to?(:validate) } unless @listeners.nil?
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.listeners
36
+ unless serialized_property.nil?
37
+ serializedArray = []
38
+ serialized_property.each do |element|
39
+ unless element.nil?
40
+ element = WinRMListener.serialize_object(element)
41
+ end
42
+ serializedArray.push(element)
43
+ end
44
+ serialized_property = serializedArray
45
+ end
46
+ output_object['listeners'] = serialized_property unless serialized_property.nil?
47
+
48
+ output_object
49
+ end
50
+
51
+ #
52
+ # Deserializes given Ruby Hash into Model object.
53
+ # @param object [Hash] Ruby Hash object to deserialize.
54
+ # @return [WinRMConfiguration] Deserialized object.
55
+ #
56
+ def self.deserialize_object(object)
57
+ return if object.nil?
58
+ output_object = WinRMConfiguration.new
59
+
60
+ deserialized_property = object['listeners']
61
+ unless deserialized_property.nil?
62
+ deserializedArray = [];
63
+ deserialized_property.each do |element1|
64
+ unless element1.nil?
65
+ element1 = WinRMListener.deserialize_object(element1)
66
+ end
67
+ deserializedArray.push(element1);
68
+ end
69
+ deserialized_property = deserializedArray;
70
+ end
71
+ output_object.listeners = deserialized_property
72
+
73
+ output_object.validate
74
+
75
+ output_object
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,73 @@
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 Protocol and thumbprint of Windows Remote Management listener
10
+ #
11
+ class WinRMListener
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [ProtocolTypes] Gets or sets the Protocol used by WinRM
16
+ # listener. Currently only Http and Https are supported. Possible
17
+ # values for this property include: 'Http', 'Https'.
18
+ attr_accessor :protocol
19
+
20
+ # @return [String] Gets or sets the Certificate URL in KMS for Https
21
+ # listeners. Should be null for Http listeners.
22
+ attr_accessor :certificate_url
23
+
24
+ #
25
+ # Validate the object. Throws ValidationError if validation fails.
26
+ #
27
+ def validate
28
+ end
29
+
30
+ #
31
+ # Serializes given Model object into Ruby Hash.
32
+ # @param object Model object to serialize.
33
+ # @return [Hash] Serialized object in form of Ruby Hash.
34
+ #
35
+ def self.serialize_object(object)
36
+ object.validate
37
+ output_object = {}
38
+
39
+ serialized_property = object.protocol
40
+ output_object['protocol'] = serialized_property unless serialized_property.nil?
41
+
42
+ serialized_property = object.certificate_url
43
+ output_object['certificateUrl'] = serialized_property unless serialized_property.nil?
44
+
45
+ output_object
46
+ end
47
+
48
+ #
49
+ # Deserializes given Ruby Hash into Model object.
50
+ # @param object [Hash] Ruby Hash object to deserialize.
51
+ # @return [WinRMListener] Deserialized object.
52
+ #
53
+ def self.deserialize_object(object)
54
+ return if object.nil?
55
+ output_object = WinRMListener.new
56
+
57
+ deserialized_property = object['protocol']
58
+ if (!deserialized_property.nil? && !deserialized_property.empty?)
59
+ enum_is_valid = ProtocolTypes.constants.any? { |e| ProtocolTypes.const_get(e).to_s.downcase == deserialized_property.downcase }
60
+ fail MsRest::DeserializationError.new('Error occured while deserializing the enum', nil, nil, nil) unless enum_is_valid
61
+ end
62
+ output_object.protocol = deserialized_property
63
+
64
+ deserialized_property = object['certificateUrl']
65
+ output_object.certificate_url = deserialized_property
66
+
67
+ output_object.validate
68
+
69
+ output_object
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,126 @@
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 Windows Configuration of the OS Profile.
10
+ #
11
+ class WindowsConfiguration
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [Boolean] Gets or sets whether VM Agent should be provisioned
16
+ # on the Virtual Machine.
17
+ attr_accessor :provision_vmagent
18
+
19
+ # @return [Boolean] Gets or sets whether Windows updates are
20
+ # automatically installed on the VM
21
+ attr_accessor :enable_automatic_updates
22
+
23
+ # @return [String] Gets or sets the Time Zone of the VM
24
+ attr_accessor :time_zone
25
+
26
+ # @return [Array<AdditionalUnattendContent>] Gets or sets the additional
27
+ # base-64 encoded XML formatted information that can be included in the
28
+ # Unattend.xml file.
29
+ attr_accessor :additional_unattend_content
30
+
31
+ # @return [WinRMConfiguration] Gets or sets the Windows Remote
32
+ # Management configuration of the VM
33
+ attr_accessor :win_rm
34
+
35
+ #
36
+ # Validate the object. Throws ValidationError if validation fails.
37
+ #
38
+ def validate
39
+ @additional_unattend_content.each{ |e| e.validate if e.respond_to?(:validate) } unless @additional_unattend_content.nil?
40
+ @win_rm.validate unless @win_rm.nil?
41
+ end
42
+
43
+ #
44
+ # Serializes given Model object into Ruby Hash.
45
+ # @param object Model object to serialize.
46
+ # @return [Hash] Serialized object in form of Ruby Hash.
47
+ #
48
+ def self.serialize_object(object)
49
+ object.validate
50
+ output_object = {}
51
+
52
+ serialized_property = object.provision_vmagent
53
+ output_object['provisionVMAgent'] = serialized_property unless serialized_property.nil?
54
+
55
+ serialized_property = object.enable_automatic_updates
56
+ output_object['enableAutomaticUpdates'] = serialized_property unless serialized_property.nil?
57
+
58
+ serialized_property = object.time_zone
59
+ output_object['timeZone'] = serialized_property unless serialized_property.nil?
60
+
61
+ serialized_property = object.additional_unattend_content
62
+ unless serialized_property.nil?
63
+ serializedArray = []
64
+ serialized_property.each do |element|
65
+ unless element.nil?
66
+ element = AdditionalUnattendContent.serialize_object(element)
67
+ end
68
+ serializedArray.push(element)
69
+ end
70
+ serialized_property = serializedArray
71
+ end
72
+ output_object['additionalUnattendContent'] = serialized_property unless serialized_property.nil?
73
+
74
+ serialized_property = object.win_rm
75
+ unless serialized_property.nil?
76
+ serialized_property = WinRMConfiguration.serialize_object(serialized_property)
77
+ end
78
+ output_object['winRM'] = serialized_property unless serialized_property.nil?
79
+
80
+ output_object
81
+ end
82
+
83
+ #
84
+ # Deserializes given Ruby Hash into Model object.
85
+ # @param object [Hash] Ruby Hash object to deserialize.
86
+ # @return [WindowsConfiguration] Deserialized object.
87
+ #
88
+ def self.deserialize_object(object)
89
+ return if object.nil?
90
+ output_object = WindowsConfiguration.new
91
+
92
+ deserialized_property = object['provisionVMAgent']
93
+ output_object.provision_vmagent = deserialized_property
94
+
95
+ deserialized_property = object['enableAutomaticUpdates']
96
+ output_object.enable_automatic_updates = deserialized_property
97
+
98
+ deserialized_property = object['timeZone']
99
+ output_object.time_zone = deserialized_property
100
+
101
+ deserialized_property = object['additionalUnattendContent']
102
+ unless deserialized_property.nil?
103
+ deserializedArray = [];
104
+ deserialized_property.each do |element1|
105
+ unless element1.nil?
106
+ element1 = AdditionalUnattendContent.deserialize_object(element1)
107
+ end
108
+ deserializedArray.push(element1);
109
+ end
110
+ deserialized_property = deserializedArray;
111
+ end
112
+ output_object.additional_unattend_content = deserialized_property
113
+
114
+ deserialized_property = object['winRM']
115
+ unless deserialized_property.nil?
116
+ deserialized_property = WinRMConfiguration.deserialize_object(deserialized_property)
117
+ end
118
+ output_object.win_rm = deserialized_property
119
+
120
+ output_object.validate
121
+
122
+ output_object
123
+ end
124
+ end
125
+ end
126
+ end
@@ -0,0 +1,473 @@
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
+ #
8
+ # AvailabilitySets
9
+ #
10
+ class AvailabilitySets
11
+ include Azure::ARM::Compute::Models
12
+ include MsRestAzure
13
+
14
+ #
15
+ # Creates and initializes a new instance of the AvailabilitySets class.
16
+ # @param client service class for accessing basic functionality.
17
+ #
18
+ def initialize(client)
19
+ @client = client
20
+ end
21
+
22
+ # @return reference to the ComputeManagementClient
23
+ attr_reader :client
24
+
25
+ #
26
+ # The operation to delete the availability set.
27
+ # @param resource_group_name [String] The name of the resource group.
28
+ # @param availability_set_name [String] The name of the availability set.
29
+ # @param [Hash{String => String}] The hash of custom headers need to be
30
+ # applied to HTTP request.
31
+ #
32
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
33
+ # response.
34
+ #
35
+ def delete(resource_group_name, availability_set_name, custom_headers = nil)
36
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
37
+ fail ArgumentError, 'availability_set_name is nil' if availability_set_name.nil?
38
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
39
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
40
+ # Construct URL
41
+ path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
42
+ path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
43
+ path['{availabilitySetName}'] = ERB::Util.url_encode(availability_set_name) if path.include?('{availabilitySetName}')
44
+ path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
45
+ url = URI.join(@client.base_url, path)
46
+ properties = {}
47
+ properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
48
+ unless url.query.nil?
49
+ url.query.split('&').each do |url_item|
50
+ url_items_parts = url_item.split('=')
51
+ properties[url_items_parts[0]] = url_items_parts[1]
52
+ end
53
+ end
54
+ properties.reject!{ |key, value| value.nil? }
55
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
56
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
57
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
58
+ url = URI.parse(corrected_url)
59
+
60
+ connection = Faraday.new(:url => url) do |faraday|
61
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
62
+ faraday.use :cookie_jar
63
+ faraday.adapter Faraday.default_adapter
64
+ end
65
+ request_headers = Hash.new
66
+
67
+ # Set Headers
68
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
69
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
70
+
71
+ unless custom_headers.nil?
72
+ custom_headers.each do |key, value|
73
+ request_headers[key] = value
74
+ end
75
+ end
76
+
77
+ # Send Request
78
+ promise = Concurrent::Promise.new do
79
+ connection.delete do |request|
80
+ request.headers = request_headers
81
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
82
+ end
83
+ end
84
+
85
+ promise = promise.then do |http_response|
86
+ status_code = http_response.status
87
+ response_content = http_response.body
88
+ unless (status_code == 200 || status_code == 204)
89
+ fail MsRestAzure::AzureOperationError.new(connection, http_response)
90
+ end
91
+
92
+ # Create Result
93
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
94
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
95
+
96
+ result
97
+ end
98
+
99
+ promise.execute
100
+ end
101
+
102
+ #
103
+ # The operation to get the availability set.
104
+ # @param resource_group_name [String] The name of the resource group.
105
+ # @param availability_set_name [String] The name of the availability set.
106
+ # @param [Hash{String => String}] The hash of custom headers need to be
107
+ # applied to HTTP request.
108
+ #
109
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
110
+ # response.
111
+ #
112
+ def get(resource_group_name, availability_set_name, custom_headers = nil)
113
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
114
+ fail ArgumentError, 'availability_set_name is nil' if availability_set_name.nil?
115
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
116
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
117
+ # Construct URL
118
+ path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
119
+ path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
120
+ path['{availabilitySetName}'] = ERB::Util.url_encode(availability_set_name) if path.include?('{availabilitySetName}')
121
+ path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
122
+ url = URI.join(@client.base_url, path)
123
+ properties = {}
124
+ properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
125
+ unless url.query.nil?
126
+ url.query.split('&').each do |url_item|
127
+ url_items_parts = url_item.split('=')
128
+ properties[url_items_parts[0]] = url_items_parts[1]
129
+ end
130
+ end
131
+ properties.reject!{ |key, value| value.nil? }
132
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
133
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
134
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
135
+ url = URI.parse(corrected_url)
136
+
137
+ connection = Faraday.new(:url => url) do |faraday|
138
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
139
+ faraday.use :cookie_jar
140
+ faraday.adapter Faraday.default_adapter
141
+ end
142
+ request_headers = Hash.new
143
+
144
+ # Set Headers
145
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
146
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
147
+
148
+ unless custom_headers.nil?
149
+ custom_headers.each do |key, value|
150
+ request_headers[key] = value
151
+ end
152
+ end
153
+
154
+ # Send Request
155
+ promise = Concurrent::Promise.new do
156
+ connection.get do |request|
157
+ request.headers = request_headers
158
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
159
+ end
160
+ end
161
+
162
+ promise = promise.then do |http_response|
163
+ status_code = http_response.status
164
+ response_content = http_response.body
165
+ unless (status_code == 200)
166
+ error_model = JSON.load(response_content)
167
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
168
+ end
169
+
170
+ # Create Result
171
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
172
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
173
+ # Deserialize Response
174
+ if status_code == 200
175
+ begin
176
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
177
+ unless parsed_response.nil?
178
+ parsed_response = AvailabilitySet.deserialize_object(parsed_response)
179
+ end
180
+ result.body = parsed_response
181
+ rescue Exception => e
182
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
183
+ end
184
+ end
185
+
186
+ result
187
+ end
188
+
189
+ promise.execute
190
+ end
191
+
192
+ #
193
+ # The operation to list the availability sets.
194
+ # @param resource_group_name [String] The name of the resource group.
195
+ # @param [Hash{String => String}] The hash of custom headers need to be
196
+ # applied to HTTP request.
197
+ #
198
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
199
+ # response.
200
+ #
201
+ def list(resource_group_name, custom_headers = nil)
202
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
203
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
204
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
205
+ # Construct URL
206
+ path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets"
207
+ path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
208
+ path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
209
+ url = URI.join(@client.base_url, path)
210
+ properties = {}
211
+ properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
212
+ unless url.query.nil?
213
+ url.query.split('&').each do |url_item|
214
+ url_items_parts = url_item.split('=')
215
+ properties[url_items_parts[0]] = url_items_parts[1]
216
+ end
217
+ end
218
+ properties.reject!{ |key, value| value.nil? }
219
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
220
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
221
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
222
+ url = URI.parse(corrected_url)
223
+
224
+ connection = Faraday.new(:url => url) do |faraday|
225
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
226
+ faraday.use :cookie_jar
227
+ faraday.adapter Faraday.default_adapter
228
+ end
229
+ request_headers = Hash.new
230
+
231
+ # Set Headers
232
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
233
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
234
+
235
+ unless custom_headers.nil?
236
+ custom_headers.each do |key, value|
237
+ request_headers[key] = value
238
+ end
239
+ end
240
+
241
+ # Send Request
242
+ promise = Concurrent::Promise.new do
243
+ connection.get do |request|
244
+ request.headers = request_headers
245
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
246
+ end
247
+ end
248
+
249
+ promise = promise.then do |http_response|
250
+ status_code = http_response.status
251
+ response_content = http_response.body
252
+ unless (status_code == 200)
253
+ error_model = JSON.load(response_content)
254
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
255
+ end
256
+
257
+ # Create Result
258
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
259
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
260
+ # Deserialize Response
261
+ if status_code == 200
262
+ begin
263
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
264
+ unless parsed_response.nil?
265
+ parsed_response = AvailabilitySetListResult.deserialize_object(parsed_response)
266
+ end
267
+ result.body = parsed_response
268
+ rescue Exception => e
269
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
270
+ end
271
+ end
272
+
273
+ result
274
+ end
275
+
276
+ promise.execute
277
+ end
278
+
279
+ #
280
+ # Lists virtual-machine-sizes available to be used for an availability set.
281
+ # @param resource_group_name [String] The name of the resource group.
282
+ # @param availability_set_name [String] The name of the availability set.
283
+ # @param [Hash{String => String}] The hash of custom headers need to be
284
+ # applied to HTTP request.
285
+ #
286
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
287
+ # response.
288
+ #
289
+ def list_available_sizes(resource_group_name, availability_set_name, custom_headers = nil)
290
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
291
+ fail ArgumentError, 'availability_set_name is nil' if availability_set_name.nil?
292
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
293
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
294
+ # Construct URL
295
+ path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}/vmSizes"
296
+ path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
297
+ path['{availabilitySetName}'] = ERB::Util.url_encode(availability_set_name) if path.include?('{availabilitySetName}')
298
+ path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
299
+ url = URI.join(@client.base_url, path)
300
+ properties = {}
301
+ properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
302
+ unless url.query.nil?
303
+ url.query.split('&').each do |url_item|
304
+ url_items_parts = url_item.split('=')
305
+ properties[url_items_parts[0]] = url_items_parts[1]
306
+ end
307
+ end
308
+ properties.reject!{ |key, value| value.nil? }
309
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
310
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
311
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
312
+ url = URI.parse(corrected_url)
313
+
314
+ connection = Faraday.new(:url => url) do |faraday|
315
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
316
+ faraday.use :cookie_jar
317
+ faraday.adapter Faraday.default_adapter
318
+ end
319
+ request_headers = Hash.new
320
+
321
+ # Set Headers
322
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
323
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
324
+
325
+ unless custom_headers.nil?
326
+ custom_headers.each do |key, value|
327
+ request_headers[key] = value
328
+ end
329
+ end
330
+
331
+ # Send Request
332
+ promise = Concurrent::Promise.new do
333
+ connection.get do |request|
334
+ request.headers = request_headers
335
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
336
+ end
337
+ end
338
+
339
+ promise = promise.then do |http_response|
340
+ status_code = http_response.status
341
+ response_content = http_response.body
342
+ unless (status_code == 200)
343
+ error_model = JSON.load(response_content)
344
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
345
+ end
346
+
347
+ # Create Result
348
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
349
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
350
+ # Deserialize Response
351
+ if status_code == 200
352
+ begin
353
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
354
+ unless parsed_response.nil?
355
+ parsed_response = VirtualMachineSizeListResult.deserialize_object(parsed_response)
356
+ end
357
+ result.body = parsed_response
358
+ rescue Exception => e
359
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
360
+ end
361
+ end
362
+
363
+ result
364
+ end
365
+
366
+ promise.execute
367
+ end
368
+
369
+ #
370
+ # The operation to create or update the availability set.
371
+ # @param resource_group_name [String] The name of the resource group.
372
+ # @param name [String] Parameters supplied to the Create Availability Set
373
+ # operation.
374
+ # @param parameters [AvailabilitySet] Parameters supplied to the Create
375
+ # Availability Set operation.
376
+ # @param [Hash{String => String}] The hash of custom headers need to be
377
+ # applied to HTTP request.
378
+ #
379
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
380
+ # response.
381
+ #
382
+ def create_or_update(resource_group_name, name, parameters, custom_headers = nil)
383
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
384
+ fail ArgumentError, 'name is nil' if name.nil?
385
+ fail ArgumentError, 'parameters is nil' if parameters.nil?
386
+ parameters.validate unless parameters.nil?
387
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
388
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
389
+ # Construct URL
390
+ path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{name}"
391
+ path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
392
+ path['{name}'] = ERB::Util.url_encode(name) if path.include?('{name}')
393
+ path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
394
+ url = URI.join(@client.base_url, path)
395
+ properties = {}
396
+ properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
397
+ unless url.query.nil?
398
+ url.query.split('&').each do |url_item|
399
+ url_items_parts = url_item.split('=')
400
+ properties[url_items_parts[0]] = url_items_parts[1]
401
+ end
402
+ end
403
+ properties.reject!{ |key, value| value.nil? }
404
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
405
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
406
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
407
+ url = URI.parse(corrected_url)
408
+
409
+ connection = Faraday.new(:url => url) do |faraday|
410
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
411
+ faraday.use :cookie_jar
412
+ faraday.adapter Faraday.default_adapter
413
+ end
414
+ request_headers = Hash.new
415
+
416
+ # Set Headers
417
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
418
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
419
+
420
+ unless custom_headers.nil?
421
+ custom_headers.each do |key, value|
422
+ request_headers[key] = value
423
+ end
424
+ end
425
+
426
+ # Serialize Request
427
+ request_headers['Content-Type'] = 'application/json'
428
+ unless parameters.nil?
429
+ parameters = AvailabilitySet.serialize_object(parameters)
430
+ end
431
+ request_content = JSON.generate(parameters, quirks_mode: true)
432
+
433
+ # Send Request
434
+ promise = Concurrent::Promise.new do
435
+ connection.put do |request|
436
+ request.headers = request_headers
437
+ request.body = request_content
438
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
439
+ end
440
+ end
441
+
442
+ promise = promise.then do |http_response|
443
+ status_code = http_response.status
444
+ response_content = http_response.body
445
+ unless (status_code == 200)
446
+ error_model = JSON.load(response_content)
447
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
448
+ end
449
+
450
+ # Create Result
451
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
452
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
453
+ # Deserialize Response
454
+ if status_code == 200
455
+ begin
456
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
457
+ unless parsed_response.nil?
458
+ parsed_response = AvailabilitySet.deserialize_object(parsed_response)
459
+ end
460
+ result.body = parsed_response
461
+ rescue Exception => e
462
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
463
+ end
464
+ end
465
+
466
+ result
467
+ end
468
+
469
+ promise.execute
470
+ end
471
+
472
+ end
473
+ end