Class: Azure::ARM::Network::NetworkResourceProviderClient

Inherits:
MsRestAzure::AzureServiceClient
  • Object
show all
Includes:
Models, MsRestAzure
Defined in:
lib/azure_mgmt_network/network_resource_provider_client.rb

Overview

A service client - single point of access to the REST API.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(credentials, base_url = nil, options = nil) ⇒ NetworkResourceProviderClient

Creates initializes a new instance of the NetworkResourceProviderClient class.

Parameters:

  • credentials (MsRest::ServiceClientCredentials)

    credentials to authorize HTTP requests made by the service client.

  • base_url (String) (defaults to: nil)

    the base URI of the service.

  • options (Array) (defaults to: nil)

    filters to be applied to the HTTP requests.



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 80

def initialize(credentials, base_url = nil, options = nil)
  super(credentials, options)
  @base_url = base_url || 'https://management.azure.com'

  fail ArgumentError, 'credentials is nil' if credentials.nil?
  fail ArgumentError, 'invalid type of credentials input parameter' unless credentials.is_a?(MsRest::ServiceClientCredentials)
  @credentials = credentials

  @application_gateways = ApplicationGateways.new(self)
  @load_balancers = LoadBalancers.new(self)
  @local_network_gateways = LocalNetworkGateways.new(self)
  @network_interfaces = NetworkInterfaces.new(self)
  @network_security_groups = NetworkSecurityGroups.new(self)
  @public_ip_addresses = PublicIpAddresses.new(self)
  @security_rules = SecurityRules.new(self)
  @subnets = Subnets.new(self)
  @usages = Usages.new(self)
  @virtual_network_gateway_connections = VirtualNetworkGatewayConnections.new(self)
  @virtual_network_gateways = VirtualNetworkGateways.new(self)
  @virtual_networks = VirtualNetworks.new(self)
  @api_version = "2015-05-01-preview"
  @accept_language = "en-US"
end

Instance Attribute Details

#accept_languageString

Returns Gets or sets the preferred language for the response.

Returns:

  • (String)

    Gets or sets the preferred language for the response.



29
30
31
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 29

def accept_language
  @accept_language
end

#api_versionString (readonly)

Returns Client Api Version.

Returns:

  • (String)

    Client Api Version.



26
27
28
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 26

def api_version
  @api_version
end

#application_gatewaysObject (readonly)

Returns application_gateways.

Returns:

  • application_gateways



39
40
41
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 39

def application_gateways
  @application_gateways
end

#base_urlString

Returns the base URI of the service.

Returns:

  • (String)

    the base URI of the service.



15
16
17
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 15

def base_url
  @base_url
end

#credentialsServiceClient

client subscription.

Returns:

  • (ServiceClient)

    Subscription credentials which uniquely identify



18
19
20
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 18

def credentials
  @credentials
end

#load_balancersObject (readonly)

Returns load_balancers.

Returns:

  • load_balancers



42
43
44
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 42

def load_balancers
  @load_balancers
end

#local_network_gatewaysObject (readonly)

Returns local_network_gateways.

Returns:

  • local_network_gateways



45
46
47
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 45

def local_network_gateways
  @local_network_gateways
end

#long_running_operation_retry_timeoutInteger

Returns The retry timeout for Long Running Operations.

Returns:

  • (Integer)

    The retry timeout for Long Running Operations.



32
33
34
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 32

def long_running_operation_retry_timeout
  @long_running_operation_retry_timeout
end

#network_interfacesObject (readonly)

Returns network_interfaces.

Returns:

  • network_interfaces



48
49
50
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 48

def network_interfaces
  @network_interfaces
end

#network_security_groupsObject (readonly)

Returns network_security_groups.

Returns:

  • network_security_groups



51
52
53
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 51

def network_security_groups
  @network_security_groups
end

#public_ip_addressesObject (readonly)

Returns public_ip_addresses.

Returns:

  • public_ip_addresses



54
55
56
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 54

def public_ip_addresses
  @public_ip_addresses
end

#security_rulesObject (readonly)

Returns security_rules.

Returns:

  • security_rules



57
58
59
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 57

def security_rules
  @security_rules
end

#subnetsObject (readonly)

Returns subnets.

Returns:

  • subnets



60
61
62
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 60

def subnets
  @subnets
end

#subscription_idString

Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.

Returns:

  • (String)

    Gets subscription credentials which uniquely identify



23
24
25
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 23

def subscription_id
  @subscription_id
end

#usagesObject (readonly)

Returns usages.

Returns:

  • usages



63
64
65
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 63

def usages
  @usages
end

#virtual_network_gateway_connectionsObject (readonly)

Returns virtual_network_gateway_connections.

Returns:

  • virtual_network_gateway_connections



66
67
68
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 66

def virtual_network_gateway_connections
  @virtual_network_gateway_connections
end

#virtual_network_gatewaysObject (readonly)

Returns virtual_network_gateways.

Returns:

  • virtual_network_gateways



69
70
71
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 69

def virtual_network_gateways
  @virtual_network_gateways
end

#virtual_networksObject (readonly)

Returns virtual_networks.

Returns:

  • virtual_networks



72
73
74
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 72

def virtual_networks
  @virtual_networks
end

Instance Method Details

#check_dns_name_availability(location, domain_name_label = nil, custom_headers = nil) ⇒ Concurrent::Promise

Checks whether a domain name in the cloudapp.net zone is available for use. conform to the following regular expression: ^[a-z]1,61$. applied to HTTP request.

response.

Parameters:

  • location (String)

    The location of the domain name

  • domain_name_label (String) (defaults to: nil)

    The domain name to be verified. It must

  • The (Hash{String => String})

    hash of custom headers need to be

Returns:

  • (Concurrent::Promise)

    Promise object which allows to get HTTP



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# File 'lib/azure_mgmt_network/network_resource_provider_client.rb', line 115

def check_dns_name_availability(location, domain_name_label = nil, custom_headers = nil)
  fail ArgumentError, 'location is nil' if location.nil?
  fail ArgumentError, 'api_version is nil' if api_version.nil?
  fail ArgumentError, 'subscription_id is nil' if subscription_id.nil?
  # Construct URL
  path = "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/CheckDnsNameAvailability"
  path['{location}'] = ERB::Util.url_encode(location) if path.include?('{location}')
  path['{subscriptionId}'] = ERB::Util.url_encode(subscription_id) if path.include?('{subscriptionId}')
  url = URI.join(self.base_url, path)
  properties = {}
  properties['domainNameLabel'] = ERB::Util.url_encode(domain_name_label.to_s) unless domain_name_label.nil?
  properties['api-version'] = ERB::Util.url_encode(api_version.to_s) unless api_version.nil?
  unless url.query.nil?
    url.query.split('&').each do |url_item|
      url_items_parts = url_item.split('=')
      properties[url_items_parts[0]] = url_items_parts[1]
    end
  end
  properties.reject!{ |key, value| value.nil? }
  url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
  fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
  corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
  url = URI.parse(corrected_url)

  connection = Faraday.new(:url => url) do |faraday|
    faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
    faraday.use :cookie_jar
    faraday.adapter Faraday.default_adapter
  end
  request_headers = Hash.new

  # Set Headers
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
  request_headers["accept-language"] = accept_language unless accept_language.nil?

  unless custom_headers.nil?
    custom_headers.each do |key, value|
      request_headers[key] = value
    end
  end

  # Send Request
  promise = Concurrent::Promise.new do
    connection.get do |request|
      request.headers = request_headers
      self.credentials.sign_request(request) unless self.credentials.nil?
    end
  end

  promise = promise.then do |http_response|
    status_code = http_response.status
    response_content = http_response.body
    unless (status_code == 200)
      error_model = JSON.load(response_content)
      fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
    end

    # Create Result
    result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
    result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
    # Deserialize Response
    if status_code == 200
      begin
        parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
        unless parsed_response.nil?
          parsed_response = DnsNameAvailabilityResult.deserialize_object(parsed_response)
        end
        result.body = parsed_response
      rescue Exception => e
        fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
      end
    end

    result
  end

  promise.execute
end