# 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

"""

Get the specified network interface ip configuration in a virtual machine scale set.
Param: resourceGroupName::String (required)
Param: virtualMachineScaleSetName::String (required)
Param: virtualmachineIndex::String (required)
Param: networkInterfaceName::String (required)
Param: ipConfigurationName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Param: expand::String
Return: NetworkInterfaceIPConfiguration
"""
function _swaggerinternal_networkInterfacesGetVirtualMachineScaleSetIpConfiguration(_api::NetworkInterfacesApi, resourceGroupName::String, virtualMachineScaleSetName::String, virtualmachineIndex::String, networkInterfaceName::String, ipConfigurationName::String, api_version::String, subscriptionId::String; expand=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceIPConfiguration, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces/{networkInterfaceName}/ipConfigurations/{ipConfigurationName}", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "virtualMachineScaleSetName", virtualMachineScaleSetName)  # type String
    Swagger.set_param(_ctx.path, "virtualmachineIndex", virtualmachineIndex)  # 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_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 networkInterfacesGetVirtualMachineScaleSetIpConfiguration(_api::NetworkInterfacesApi, resourceGroupName::String, virtualMachineScaleSetName::String, virtualmachineIndex::String, networkInterfaceName::String, ipConfigurationName::String, api_version::String, subscriptionId::String; expand=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesGetVirtualMachineScaleSetIpConfiguration(_api, resourceGroupName, virtualMachineScaleSetName, virtualmachineIndex, networkInterfaceName, ipConfigurationName, api_version, subscriptionId; expand=expand, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfacesGetVirtualMachineScaleSetIpConfiguration(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, virtualMachineScaleSetName::String, virtualmachineIndex::String, networkInterfaceName::String, ipConfigurationName::String, api_version::String, subscriptionId::String; expand=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesGetVirtualMachineScaleSetIpConfiguration(_api, resourceGroupName, virtualMachineScaleSetName, virtualmachineIndex, networkInterfaceName, ipConfigurationName, api_version, subscriptionId; expand=expand, _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Get the specified network interface in a virtual machine scale set.
Param: resourceGroupName::String (required)
Param: virtualMachineScaleSetName::String (required)
Param: virtualmachineIndex::String (required)
Param: networkInterfaceName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Param: expand::String
Return: NetworkInterface
"""
function _swaggerinternal_networkInterfacesGetVirtualMachineScaleSetNetworkInterface(_api::NetworkInterfacesApi, resourceGroupName::String, virtualMachineScaleSetName::String, virtualmachineIndex::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.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces/{networkInterfaceName}", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "virtualMachineScaleSetName", virtualMachineScaleSetName)  # type String
    Swagger.set_param(_ctx.path, "virtualmachineIndex", virtualmachineIndex)  # 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 networkInterfacesGetVirtualMachineScaleSetNetworkInterface(_api::NetworkInterfacesApi, resourceGroupName::String, virtualMachineScaleSetName::String, virtualmachineIndex::String, networkInterfaceName::String, api_version::String, subscriptionId::String; expand=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesGetVirtualMachineScaleSetNetworkInterface(_api, resourceGroupName, virtualMachineScaleSetName, virtualmachineIndex, networkInterfaceName, api_version, subscriptionId; expand=expand, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

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

"""

Get the specified network interface ip configuration in a virtual machine scale set.
Param: resourceGroupName::String (required)
Param: virtualMachineScaleSetName::String (required)
Param: virtualmachineIndex::String (required)
Param: networkInterfaceName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Param: expand::String
Return: NetworkInterfaceIPConfigurationListResult
"""
function _swaggerinternal_networkInterfacesListVirtualMachineScaleSetIpConfigurations(_api::NetworkInterfacesApi, resourceGroupName::String, virtualMachineScaleSetName::String, virtualmachineIndex::String, networkInterfaceName::String, api_version::String, subscriptionId::String; expand=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceIPConfigurationListResult, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces/{networkInterfaceName}/ipConfigurations", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "virtualMachineScaleSetName", virtualMachineScaleSetName)  # type String
    Swagger.set_param(_ctx.path, "virtualmachineIndex", virtualmachineIndex)  # 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 networkInterfacesListVirtualMachineScaleSetIpConfigurations(_api::NetworkInterfacesApi, resourceGroupName::String, virtualMachineScaleSetName::String, virtualmachineIndex::String, networkInterfaceName::String, api_version::String, subscriptionId::String; expand=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesListVirtualMachineScaleSetIpConfigurations(_api, resourceGroupName, virtualMachineScaleSetName, virtualmachineIndex, networkInterfaceName, api_version, subscriptionId; expand=expand, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

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

"""

Gets all network interfaces in a virtual machine scale set.
Param: resourceGroupName::String (required)
Param: virtualMachineScaleSetName::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterfaceListResult
"""
function _swaggerinternal_networkInterfacesListVirtualMachineScaleSetNetworkInterfaces(_api::NetworkInterfacesApi, resourceGroupName::String, virtualMachineScaleSetName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceListResult, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/networkInterfaces", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "virtualMachineScaleSetName", virtualMachineScaleSetName)  # 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 networkInterfacesListVirtualMachineScaleSetNetworkInterfaces(_api::NetworkInterfacesApi, resourceGroupName::String, virtualMachineScaleSetName::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesListVirtualMachineScaleSetNetworkInterfaces(_api, resourceGroupName, virtualMachineScaleSetName, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

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

"""

Gets information about all network interfaces in a virtual machine in a virtual machine scale set.
Param: resourceGroupName::String (required)
Param: virtualMachineScaleSetName::String (required)
Param: virtualmachineIndex::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: NetworkInterfaceListResult
"""
function _swaggerinternal_networkInterfacesListVirtualMachineScaleSetVMNetworkInterfaces(_api::NetworkInterfacesApi, resourceGroupName::String, virtualMachineScaleSetName::String, virtualmachineIndex::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", NetworkInterfaceListResult, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "virtualMachineScaleSetName", virtualMachineScaleSetName)  # type String
    Swagger.set_param(_ctx.path, "virtualmachineIndex", virtualmachineIndex)  # 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 networkInterfacesListVirtualMachineScaleSetVMNetworkInterfaces(_api::NetworkInterfacesApi, resourceGroupName::String, virtualMachineScaleSetName::String, virtualmachineIndex::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesListVirtualMachineScaleSetVMNetworkInterfaces(_api, resourceGroupName, virtualMachineScaleSetName, virtualmachineIndex, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function networkInterfacesListVirtualMachineScaleSetVMNetworkInterfaces(_api::NetworkInterfacesApi, response_stream::Channel, resourceGroupName::String, virtualMachineScaleSetName::String, virtualmachineIndex::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = _swaggerinternal_networkInterfacesListVirtualMachineScaleSetVMNetworkInterfaces(_api, resourceGroupName, virtualMachineScaleSetName, virtualmachineIndex, api_version, subscriptionId; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

export networkInterfacesGetVirtualMachineScaleSetIpConfiguration, networkInterfacesGetVirtualMachineScaleSetNetworkInterface, networkInterfacesListVirtualMachineScaleSetIpConfigurations, networkInterfacesListVirtualMachineScaleSetNetworkInterfaces, networkInterfacesListVirtualMachineScaleSetVMNetworkInterfaces
