lib/fog/azurerm/docs/network.md in fog-azure-rm-0.0.4 vs lib/fog/azurerm/docs/network.md in fog-azure-rm-0.0.5

- old
+ new

@@ -583,212 +583,220 @@ ```ruby lb.destroy ``` -## Create Traffic Manager Profile +## Create Virtual Network Gateway -Create a new Traffic Manager Profile. The parameter, traffic_routing_method can be Performance, Weighted or Priority. +Create a new Virtual Network Gateway. ```ruby - profile = azure_network_service.traffic_manager_profiles.create( - name: '<Profile Name>', - resource_group: '<Resource Group Name>', - traffic_routing_method: 'Performance', - relative_name: '<Profile Relative Name>', - ttl: '30', - protocol: 'http', - port: '80', - path: '/monitorpage.aspx' - ) + network_gateway = network.virtual_network_gateways.create( + name: '<Virtual Network Gateway Name>', + location: 'eastus', + tags: { + key1: 'value1', + key2: 'value2' + }, + ip_configurations: [ + { + name: 'default', + private_ipallocation_method: 'Dynamic', + public_ipaddress_id: '/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Network/publicIPAddresses/{public_ip_name}', + subnet_id: '/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Network/virtualNetworks/{virtual_network_name}/subnets/{subnet_name}', + private_ipaddress: nil + } + ], + resource_group: 'learn_fog', + sku_name: 'Standard', + sku_tier: 'Standard', + sku_capacity: 2, + gateway_type: 'ExpressRoute', + enable_bgp: true, + gateway_size: nil, + asn: 100, + bgp_peering_address: nil, + peer_weight: 3, + vpn_type: 'RouteBased', + vpn_client_address_pool: [], + gateway_default_site: '/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Network/localNetworkGateways/{local_network_gateway_name}', + default_sites: [], + vpn_client_configuration: { + address_pool: ['192.168.0.4', '192.168.0.5'], + root_certificates: [ + { + name: 'root', + public_cert_data: 'certificate data' + } + ], + revoked_certificates: [ + { + name: 'revoked', + thumbprint: 'thumb print detail' + } + ] + } + ) ``` -## List Traffic Manager Profiles +## List Virtual Network Gateways -List Traffic Manager Profiles in a resource group +List all virtual network gateways in a resource group ```ruby - profiles = azure_network_service.traffic_manager_profiles(resource_group: '<Resource Group name>') - profiles.each do |profile| - puts "#{profile.name}" - end + network_gateways = network.virtual_network_gateways(resource_group: '<Resource Group Name>') + network_gateways.each do |gateway| + puts "#{gateway.name}" + end ``` -## Retrieve a single Traffic Manager Profile +## Retrieve single Virtual Network Gateway -Get a single record of Traffic Manager Profile +Get single record of Virtual Network Gateway ```ruby - profile = azure_network_service - .traffic_manager_profiles(resource_group: '<Resource Group name>') - .get('<Profile name>') - puts "#{profile.name}" + network_gateway = network.virtual_network_gateways.get('<Resource Group Name>', '<Virtual Network Gateway Name>') + puts "#{network_gateway.name}" ``` -## Destroy a single Traffic Manager Profile +## Destroy single Virtual Network Gateway -Get a Traffic Manager Profile object from the get method and then destroy that Traffic Manager Profile. +Get a virtual network gateway object from the get method and then destroy that virtual network gateway. ```ruby - profile.destroy + network_gateway.destroy ``` -## Create Traffic Manager Endpoint +## Express Route -Create a new Traffic Manager Endpoint. The parameter, type can be external, azure or nested. +Microsoft Azure ExpressRoute lets you extend your on-premises networks into the Microsoft cloud over a dedicated private connection facilitated by a connectivity provider. +For more details about express route [click here](https://azure.microsoft.com/en-us/documentation/articles/expressroute-introduction/). +# Express Route Circuit + +The Circuit represents the entity created by customer to register with an express route service provider with intent to connect to Microsoft. + +## Create an Express Route Circuit + +Create a new Express Route Circuit. + ```ruby - profile = azure_network_service.traffic_manager_end_points.create( - name: '<Endpoint Name>', - traffic_manager_profile_name: '<Profile Name>', - resource_group: '<Resource Group Name>', - type: 'external', - target: 'test.com', - endpoint_location: 'West US' - ) + circuit = network.express_route_circuits.create( + "name": "<Circuit Name>", + "location": "eastus", + "resource_group": "<Resource Group Name>", + "tags": { + "key1": 'value1', + "key2": 'value2' + }, + "sku_name": "Standard_MeteredData", + "sku_tier": "Standard", + "sku_family": "MeteredData", + "service_provider_name": "Telenor", + "peering_location": "London", + "bandwidth_in_mbps": 100, + "peerings": [ + { + "name": "AzurePublicPeering", + "peering_type": "AzurePublicPeering", + "peer_asn": 100, + "primary_peer_address_prefix": "192.168.1.0/30", + "secondary_peer_address_prefix": "192.168.2.0/30", + "vlan_id": 200 + } + ] + ) ``` -## List Traffic Manager Endpoints +## List Express Route Circuits -List Traffic Manager Endpoints in a resource group +List all express route circuits in a resource group ```ruby - endpoints = azure_network_service.traffic_manager_end_points(resource_group: '<Resource Group name>', traffic_manager_profile_name: '<Profile Name>') - endpoints.each do |endpoint| - puts "#{endpoint.name}" - end + circuits = network.express_route_circuits(resource_group: '<Resource Group Name>') + circuits.each do |circuit| + puts "#{circuit.name}" + end ``` -## Retrieve a single Traffic Manager Endpoint +## Retrieve a single Express Route Circuit -Get a single record of Traffic Manager Endpoint +Get a single record of Express Route Circuit ```ruby - endpoint = azure_network_service - .traffic_manager_end_points(resource_group: '<Resource Group name>', traffic_manager_profile_name: '<Profile Name>') - .get('<Endpoint name>') - puts "#{endpoint.name}" + circuit = network.express_route_circuits.get("<Resource Group Name>", "<Circuit Name>") + puts "#{circuit.name}" ``` -## Destroy a single Traffic Manager Endpoint +## Destroy a single Express Route Circuit -Get a Traffic Manager Endpoint object from the get method and then destroy that Traffic Manager Endpoint. +Get an express route circuit object from the get method and then destroy that express route circuit. ```ruby - endpoint.destroy + circuit.destroy ``` -## Create Application Gateway +# Express Route Peering -Create a new Application Gateway. +BGP Peering is part of Express Route circuit and defines the type of connectivity needed with Microsoft. +## Create an Express Route Circuit Peering + +Create a new Express Route Circuit Peering. + ```ruby - gateway = azure_network_service.application_gateways.create( - name: '<Gateway Name>', - location: 'eastus', - resource_group: '<Resource Group name>', - sku_name: 'Standard_Medium', - sku_tier: 'Standard', - sku_capacity: '2', - gateway_ip_configurations: - [ - { - name: 'gatewayIpConfigName', - subnet_id: '/subscriptions/<Subscription_id>/resourcegroups/<Resource Group name>/providers/Microsoft.Network/virtualNetworks/<Virtual Network Name>/subnets/<Subnet Name>' - } - ], - frontend_ip_configurations: - [ - { - name: 'frontendIpConfig', - private_ip_allocation_method: 'Dynamic', - public_ip_address_id: '/subscriptions/<Subscription_id>/resourcegroups/<Resource Group name>/providers/Microsoft.Network/publicIPAddresses/<Public IP Address Name>', - private_ip_address: '10.0.1.5' - } - ], - frontend_ports: - [ - { - name: 'frontendPort', - port: 443 - } - ], - backend_address_pools: - [ - { - name: 'backendAddressPool', - ip_addresses: [ - { - ipAddress: '10.0.1.6' - } - ] - } - ], - backend_http_settings_list: - [ - { - name: 'gateway_settings', - port: 80, - protocol: 'Http', - cookie_based_affinity: 'Enabled', - request_timeout: '30' - } - ], - http_listeners: - [ - { - name: 'gateway_listener', - frontend_ip_config_id: '/subscriptions/<Subscription_id>/resourceGroups/<Resource Group name>/providers/Microsoft.Network/applicationGateways/<Gateway Name>/frontendIPConfigurations/frontendIpConfig', - frontend_port_id: '/subscriptions/<Subscription_id>/resourceGroups/<Resource Group name>/providers/Microsoft.Network/applicationGateways/<Gateway Name>/frontendPorts/frontendPort', - protocol: 'Http', - host_name: '', - require_server_name_indication: 'false' - } - ], - request_routing_rules: - [ - { - name: 'gateway_request_route_rule', - type: 'Basic', - http_listener_id: '/subscriptions/<Subscription_id>/resourceGroups/<Resource Group name>/providers/Microsoft.Network/applicationGateways/<Gateway Name>/httpListeners/gateway_listener', - backend_address_pool_id: '/subscriptions/<Subscription_id>/resourceGroups/<Resource Group name>/providers/Microsoft.Network/applicationGateways/<Gateway Name>/backendAddressPools/backendAddressPool', - backend_http_settings_id: '/subscriptions/<Subscription_id>/resourceGroups/<Resource Group name>/providers/Microsoft.Network/applicationGateways/<Gateway Name>/backendHttpSettingsCollection/gateway_settings', - url_path_map: '' - } - ] + peering = network.express_route_circuit_peerings.create( + "name": "AzurePrivatePeering", + "circuit_name": "<Circuit Name>", + "resource_group": "<Resourse Group Name>", + "peering_type": "AzurePrivatePeering", + "peer_asn": 100, + "primary_peer_address_prefix": "192.168.3.0/30", + "secondary_peer_address_prefix": "192.168.4.0/30", + "vlan_id": 200 + ) +``` +## List Express Route Circuit Peerings - ) +List all express route circuit peerings in a resource group + +```ruby + peerings = network.express_route_circuit_peerings(resource_group: '<Resource Group Name>', circuit_name: '<Circuit Name>') + peerings.each do |peering| + puts "#{peering.name}" + end ``` -## List Application Gateways +## Retrieve single Express Route Circuit Peering -List all application gateways in a resource group +Get a single record of Express Route Circuit Peering ```ruby - gateways = azure_network_service.application_gateways(resource_group: '<Resource Group Name>') - gateways.each do |gateway| - puts "#{gateway.name}" - end + peering = network.express_route_circuit_peerings.get("<Resource Group Name>", "<Peering Name>", "Circuit Name") + puts "#{peering.peering_type}" ``` -## Retrieve a single Application Gateway +## Destroy single Express Route Circuit Peering -Get a single record of Application Gateway +Get an express route circuit peering object from the get method and then destroy that express route circuit peering. ```ruby - gateway = azure_network_service - .application_gateways(resource_group: '<Resource Group name>') - .get('<Application Gateway Name>') - puts "#{gateway.name}" + peering.destroy ``` -## Destroy a single Application Gateway +# Express Route Service Provider -Get a application gateway object from the get method and then destroy that application gateway. +Express Route Service Providers are telcos and exchange providers who are approved in the system to provide Express Route connectivity. +## List Express Route Service Providers + +List all express route service providers + ```ruby - gateway.destroy + service_providers = network.express_route_service_providers + puts service_providers ``` + ## Support and Feedback Your feedback is highly appreciated! If you have specific issues with the fog ARM, you should file an issue via Github.