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

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

"""

Creates or updates a disk encryption set
Param: subscriptionId::String (required)
Param: resourceGroupName::String (required)
Param: diskEncryptionSetName::String (required)
Param: api_version::String (required)
Param: diskEncryptionSet::DiskEncryptionSet (required)
Return: DiskEncryptionSet
"""
function _swaggerinternal_diskEncryptionSetsCreateOrUpdate(_api::DiskEncryptionSetsApi, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String, diskEncryptionSet; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "PUT", DiskEncryptionSet, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", ["azure_auth"], diskEncryptionSet)
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "diskEncryptionSetName", diskEncryptionSetName)  # 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 diskEncryptionSetsCreateOrUpdate(_api::DiskEncryptionSetsApi, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String, diskEncryptionSet; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsCreateOrUpdate(_api, subscriptionId, resourceGroupName, diskEncryptionSetName, api_version, diskEncryptionSet; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function diskEncryptionSetsCreateOrUpdate(_api::DiskEncryptionSetsApi, response_stream::Channel, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String, diskEncryptionSet; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsCreateOrUpdate(_api, subscriptionId, resourceGroupName, diskEncryptionSetName, api_version, diskEncryptionSet; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Deletes a disk encryption set.
Param: subscriptionId::String (required)
Param: resourceGroupName::String (required)
Param: diskEncryptionSetName::String (required)
Param: api_version::String (required)
Return: Nothing
"""
function _swaggerinternal_diskEncryptionSetsDelete(_api::DiskEncryptionSetsApi, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "DELETE", Nothing, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", ["azure_auth"])
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "diskEncryptionSetName", diskEncryptionSetName)  # 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 diskEncryptionSetsDelete(_api::DiskEncryptionSetsApi, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsDelete(_api, subscriptionId, resourceGroupName, diskEncryptionSetName, api_version; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function diskEncryptionSetsDelete(_api::DiskEncryptionSetsApi, response_stream::Channel, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsDelete(_api, subscriptionId, resourceGroupName, diskEncryptionSetName, api_version; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Gets information about a disk encryption set.
Param: subscriptionId::String (required)
Param: resourceGroupName::String (required)
Param: diskEncryptionSetName::String (required)
Param: api_version::String (required)
Return: DiskEncryptionSet
"""
function _swaggerinternal_diskEncryptionSetsGet(_api::DiskEncryptionSetsApi, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", DiskEncryptionSet, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", ["azure_auth"])
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "diskEncryptionSetName", diskEncryptionSetName)  # 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 diskEncryptionSetsGet(_api::DiskEncryptionSetsApi, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsGet(_api, subscriptionId, resourceGroupName, diskEncryptionSetName, api_version; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function diskEncryptionSetsGet(_api::DiskEncryptionSetsApi, response_stream::Channel, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsGet(_api, subscriptionId, resourceGroupName, diskEncryptionSetName, api_version; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Lists all the disk encryption sets under a subscription.
Param: subscriptionId::String (required)
Param: api_version::String (required)
Return: DiskEncryptionSetList
"""
function _swaggerinternal_diskEncryptionSetsList(_api::DiskEncryptionSetsApi, subscriptionId::String, api_version::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", DiskEncryptionSetList, "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/diskEncryptionSets", ["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 diskEncryptionSetsList(_api::DiskEncryptionSetsApi, subscriptionId::String, api_version::String; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsList(_api, subscriptionId, api_version; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function diskEncryptionSetsList(_api::DiskEncryptionSetsApi, response_stream::Channel, subscriptionId::String, api_version::String; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsList(_api, subscriptionId, api_version; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Lists all the disk encryption sets under a resource group.
Param: subscriptionId::String (required)
Param: resourceGroupName::String (required)
Param: api_version::String (required)
Return: DiskEncryptionSetList
"""
function _swaggerinternal_diskEncryptionSetsListByResourceGroup(_api::DiskEncryptionSetsApi, subscriptionId::String, resourceGroupName::String, api_version::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", DiskEncryptionSetList, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets", ["azure_auth"])
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # 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 diskEncryptionSetsListByResourceGroup(_api::DiskEncryptionSetsApi, subscriptionId::String, resourceGroupName::String, api_version::String; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsListByResourceGroup(_api, subscriptionId, resourceGroupName, api_version; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function diskEncryptionSetsListByResourceGroup(_api::DiskEncryptionSetsApi, response_stream::Channel, subscriptionId::String, resourceGroupName::String, api_version::String; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsListByResourceGroup(_api, subscriptionId, resourceGroupName, api_version; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

"""

Updates (patches) a disk encryption set.
Param: subscriptionId::String (required)
Param: resourceGroupName::String (required)
Param: diskEncryptionSetName::String (required)
Param: api_version::String (required)
Param: diskEncryptionSet::DiskEncryptionSetUpdate (required)
Return: DiskEncryptionSet
"""
function _swaggerinternal_diskEncryptionSetsUpdate(_api::DiskEncryptionSetsApi, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String, diskEncryptionSet; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "PATCH", DiskEncryptionSet, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", ["azure_auth"], diskEncryptionSet)
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.path, "resourceGroupName", resourceGroupName)  # type String
    Swagger.set_param(_ctx.path, "diskEncryptionSetName", diskEncryptionSetName)  # 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 diskEncryptionSetsUpdate(_api::DiskEncryptionSetsApi, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String, diskEncryptionSet; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsUpdate(_api, subscriptionId, resourceGroupName, diskEncryptionSetName, api_version, diskEncryptionSet; _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function diskEncryptionSetsUpdate(_api::DiskEncryptionSetsApi, response_stream::Channel, subscriptionId::String, resourceGroupName::String, diskEncryptionSetName::String, api_version::String, diskEncryptionSet; _mediaType=nothing)
    _ctx = _swaggerinternal_diskEncryptionSetsUpdate(_api, subscriptionId, resourceGroupName, diskEncryptionSetName, api_version, diskEncryptionSet; _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

export diskEncryptionSetsCreateOrUpdate, diskEncryptionSetsDelete, diskEncryptionSetsGet, diskEncryptionSetsList, diskEncryptionSetsListByResourceGroup, diskEncryptionSetsUpdate
