# This file was generated by the Julia Swagger Code Generator
# Do not modify this file directly. Modify the swagger specification instead.

struct NetworkInterfacesApi <: SwaggerApi
    client::Swagger.Client
end

"""

Gets the specified network interface ip configuration.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: ipConfigurationName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterfaceIPConfiguration
"""
function _swaggerinternal_networkInterfaceIPConfigurationsGet(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, ipConfigurationName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceIPConfiguration, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/ipConfigurations/{ipConfigurationName}", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "ipConfigurationName", ipConfigurationName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfaceIPConfigurationsGet(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, ipConfigurationName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceIPConfigurationsGet(_api, resourceGroupName, networkInterfaceName, ipConfigurationName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfaceIPConfigurationsGet(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, ipConfigurationName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceIPConfigurationsGet(_api, resourceGroupName, networkInterfaceName, ipConfigurationName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Get all ip configurations in a network interface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterfaceIPConfigurationListResult
"""
function _swaggerinternal_networkInterfaceIPConfigurationsList(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceIPConfigurationListResult, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/ipConfigurations", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfaceIPConfigurationsList(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceIPConfigurationsList(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfaceIPConfigurationsList(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceIPConfigurationsList(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

List all load balancers in a network interface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterfaceLoadBalancerListResult
"""
function _swaggerinternal_networkInterfaceLoadBalancersList(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceLoadBalancerListResult, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/loadBalancers", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfaceLoadBalancersList(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceLoadBalancersList(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfaceLoadBalancersList(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceLoadBalancersList(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Creates or updates a Tap configuration in the specified NetworkInterface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: tapConfigurationName::String (required)
Param: tapConfigurationParameters::NetworkInterfaceTapConfiguration (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterfaceTapConfiguration
"""
function _swaggerinternal_networkInterfaceTapConfigurationsCreateOrUpdate(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, tapConfigurationName::String, tapConfigurationParameters, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "PUT", NetworkInterfaceTapConfiguration, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/tapConfigurations/{tapConfigurationName}", ["azure_auth"], tapConfigurationParameters)
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "tapConfigurationName", tapConfigurationName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfaceTapConfigurationsCreateOrUpdate(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, tapConfigurationName::String, tapConfigurationParameters, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceTapConfigurationsCreateOrUpdate(_api, resourceGroupName, networkInterfaceName, tapConfigurationName, tapConfigurationParameters, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfaceTapConfigurationsCreateOrUpdate(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, tapConfigurationName::String, tapConfigurationParameters, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceTapConfigurationsCreateOrUpdate(_api, resourceGroupName, networkInterfaceName, tapConfigurationName, tapConfigurationParameters, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Deletes the specified tap configuration from the NetworkInterface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: tapConfigurationName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: Nothing
"""
function _swaggerinternal_networkInterfaceTapConfigurationsDelete(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, tapConfigurationName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "DELETE", Nothing, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/tapConfigurations/{tapConfigurationName}", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "tapConfigurationName", tapConfigurationName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfaceTapConfigurationsDelete(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, tapConfigurationName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceTapConfigurationsDelete(_api, resourceGroupName, networkInterfaceName, tapConfigurationName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfaceTapConfigurationsDelete(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, tapConfigurationName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceTapConfigurationsDelete(_api, resourceGroupName, networkInterfaceName, tapConfigurationName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Get the specified tap configuration on a network interface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: tapConfigurationName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterfaceTapConfiguration
"""
function _swaggerinternal_networkInterfaceTapConfigurationsGet(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, tapConfigurationName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceTapConfiguration, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/tapConfigurations/{tapConfigurationName}", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "tapConfigurationName", tapConfigurationName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfaceTapConfigurationsGet(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, tapConfigurationName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceTapConfigurationsGet(_api, resourceGroupName, networkInterfaceName, tapConfigurationName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfaceTapConfigurationsGet(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, tapConfigurationName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceTapConfigurationsGet(_api, resourceGroupName, networkInterfaceName, tapConfigurationName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Get all Tap configurations in a network interface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterfaceTapConfigurationListResult
"""
function _swaggerinternal_networkInterfaceTapConfigurationsList(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceTapConfigurationListResult, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/tapConfigurations", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfaceTapConfigurationsList(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceTapConfigurationsList(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfaceTapConfigurationsList(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfaceTapConfigurationsList(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Creates or updates a network interface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: parameters::NetworkInterface (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterface
"""
function _swaggerinternal_networkInterfacesCreateOrUpdate(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, parameters, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "PUT", NetworkInterface, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}", ["azure_auth"], parameters)
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfacesCreateOrUpdate(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, parameters, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesCreateOrUpdate(_api, resourceGroupName, networkInterfaceName, parameters, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfacesCreateOrUpdate(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, parameters, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesCreateOrUpdate(_api, resourceGroupName, networkInterfaceName, parameters, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Deletes the specified network interface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: Nothing
"""
function _swaggerinternal_networkInterfacesDelete(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "DELETE", Nothing, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfacesDelete(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesDelete(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfacesDelete(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesDelete(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Gets information about the specified network interface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Param: expand::String
Return: NetworkInterface
"""
function _swaggerinternal_networkInterfacesGet(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; expand=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterface, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_param(_ctx.query, "\$expand", expand)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfacesGet(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; expand=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesGet(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; expand=expand, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfacesGet(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; expand=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesGet(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; expand=expand, _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Gets all route tables applied to a network interface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: EffectiveRouteListResult
"""
function _swaggerinternal_networkInterfacesGetEffectiveRouteTable(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "POST", EffectiveRouteListResult, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/effectiveRouteTable", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfacesGetEffectiveRouteTable(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesGetEffectiveRouteTable(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfacesGetEffectiveRouteTable(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesGetEffectiveRouteTable(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Gets all network interfaces in a resource group.
Param: resourceGroupName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterfaceListResult
"""
function _swaggerinternal_networkInterfacesList(_api::NetworkInterfacesApi, resourceGroupName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceListResult, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfacesList(_api::NetworkInterfacesApi, resourceGroupName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesList(_api, resourceGroupName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfacesList(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesList(_api, resourceGroupName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Gets all network interfaces in a subscription.
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterfaceListResult
"""
function _swaggerinternal_networkInterfacesListAll(_api::NetworkInterfacesApi, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceListResult, "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkInterfaces", ["azure_auth"])
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfacesListAll(_api::NetworkInterfacesApi, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesListAll(_api, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfacesListAll(_api::NetworkInterfacesApi, response_stream::Channel, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesListAll(_api, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Gets all network security groups applied to a network interface.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: EffectiveNetworkSecurityGroupListResult
"""
function _swaggerinternal_networkInterfacesListEffectiveNetworkSecurityGroups(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "POST", EffectiveNetworkSecurityGroupListResult, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/effectiveNetworkSecurityGroups", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfacesListEffectiveNetworkSecurityGroups(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesListEffectiveNetworkSecurityGroups(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfacesListEffectiveNetworkSecurityGroups(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesListEffectiveNetworkSecurityGroups(_api, resourceGroupName, networkInterfaceName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Updates a network interface tags.
Param: resourceGroupName::String (required)
Param: networkInterfaceName::String (required)
Param: parameters::TagsObject (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterface
"""
function _swaggerinternal_networkInterfacesUpdateTags(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, parameters, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "PATCH", NetworkInterface, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}", ["azure_auth"], parameters)
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "networkInterfaceName", networkInterfaceName)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    return _ctx
end

function networkInterfacesUpdateTags(_api::NetworkInterfacesApi, resourceGroupName::String, networkInterfaceName::String, parameters, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesUpdateTags(_api, resourceGroupName, networkInterfaceName, parameters, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfacesUpdateTags(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, networkInterfaceName::String, parameters, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesUpdateTags(_api, resourceGroupName, networkInterfaceName, parameters, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

export networkInterfaceIPConfigurationsGet, networkInterfaceIPConfigurationsList, networkInterfaceLoadBalancersList, networkInterfaceTapConfigurationsCreateOrUpdate, networkInterfaceTapConfigurationsDelete, networkInterfaceTapConfigurationsGet, networkInterfaceTapConfigurationsList, networkInterfacesCreateOrUpdate, networkInterfacesDelete, networkInterfacesGet, networkInterfacesGetEffectiveRouteTable, networkInterfacesList, networkInterfacesListAll, networkInterfacesListEffectiveNetworkSecurityGroups, networkInterfacesUpdateTags
